2

我想在 Firefox 中修复以下问题

当我尝试使用双击鼠标来选择文本框中的文本时,它没有选择文本,光标会转到文本的开头。任何想法如何解决这个问题?但这在 googlechrome 中工作正常

我从这个http://www.iwebux.com/demos/ajax/我尝试了以下操作,当您尝试编辑价格列时,您无法选择值。谢谢。

我的代码:

 $(document).ready(function () {
     $('td.edit').click(function () {
         $('.ajax').html($('.ajax input').val());
         $('.ajax').removeClass('ajax');

         $(this).addClass('ajax');
         $(this).html('<input id="editbox"  size="' + $(this).text().length + '" type="text" value="' + $(this).text() + '">');

         $('#editbox ').focus();
     });

     $('td.edit').keydown(function (event) {
         arr = $(this).attr('class').split(" ");
         if (event.which == 13) {
             $.ajax({
                 type: "POST",
                 url: "supplierprice/config.php",
                 data: "value=" + $('.ajax input').val() + "&rowid=" + arr[2] + "&field=" + arr[1],
                 success: function (data) {
                     $('.ajax').html($('.ajax input').val());
                     $('.ajax').removeClass('ajax');
                 }
             });
         }
     });

     $('#editbox').live('blur', function () {
         $('.ajax').html($('.ajax input').val());
         $('.ajax').removeClass('ajax');
     });
 });
4

5 回答 5

0

您需要阻止点击事件传播#editbox到您的td.edit. 尝试添加这个:

$("td.edit").on("click", "#editbox", function(e) { e.stopPropagation(); });
于 2013-10-04T09:04:48.237 回答
0

您可能想要使用select()而不是 focus()。

于 2013-10-04T09:00:49.363 回答
0

请使用此代码

$('td.edit').click(function(e){
            var $target = $(e.target);
            if($target.is('#editbox')){
                return;
            }

        }
于 2013-10-07T07:51:47.780 回答
0

我稍微修改了你的脚本。

http://jsfiddle.net/dKn4W/

问题是点击事件从#editbox输入冒泡,所以 $('#editbox ').focus(); 每次点击都会执行,这会阻止文本选择。

像这样修改你的代码

        $('td.edit').click(function(e){
            var $target = $(e.target);
            if($target.is('#editbox')){
                return;
            }
            ///// rest of code
        }
于 2013-10-04T09:01:39.297 回答
0

尝试使用.select()功能。这用于选择可编辑输入元素中的文本。

在您的情况下,请尝试添加该行

$('#editbox').select();

线以下

$('#editbox ').focus();

希望这有帮助。

于 2013-10-04T09:02:06.503 回答