2013-10-04 3 views
2

Я хочу, чтобы установить следующую проблему в FirefoxВыберите текст по щелчку с помощью JQuery

Когда я пытаюсь выбрать текст внутри текстового поля, используя двойной щелчок на мыши его не выделив текст курсор идет на старт text.Any идеи, как это исправить, но это отлично работает в googlechrome

Я пробовал следующее из этого http://www.iwebux.com/demos/ajax/ i эта ссылка, когда вы пытаетесь отредактировать столбец цены, вы не можете выбрать значение. Благодарю вас.

мой код:

$(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'); 
    }); 
}); 

ответ

0

Пожалуйста, используйте этот код

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

     } 
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 
     } 
0

Попробуйте использовать .select() функцию. Это используется для выбора текста в редактируемых элементах ввода.

В вашем случае, попробуйте добавить строку

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

ниже линии

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

Надежда это hepls.

+0

Это приведет, что вы не можете щелкнуть внутри текста, после нажмите текст всегда будет выбран. – HarryFink

+0

@HarryFink Ahh! Да, у этого есть эта проблема. Ваше решение будет лучше. – Bubi

0

Вам необходимо остановить события нажатия от #editbox до td.edit. Попробуйте добавить это:

$("td.edit").on("click", "#editbox", function(e) { e.stopPropagation(); }); 
Смежные вопросы