2015-04-09 2 views
4

У меня есть поле ввода в HTML с цифровым текстом, который имеет точки i.e «1.00.1». Если я дважды щелкнул по этому полю в IE или firefox, браузер выделит только часть текста (между точками), но в двойном щелчке Chrome выделите весь текст в этом поле. Каков наилучший способ изменить это поведение в Chrome? Если в поля ввода есть только текст (т. Е. Test.test), двойной щелчок с выбором в Chrome работает так же, как IE и Firefox. enter image description hereДвойной щелчок по выбору текста в полях ввода в Chrome

+0

Это родное поведение браузера и как таковые не могут быть изменены. Однако вы можете использовать javascript, чтобы получить весь текст, выбранный при фокусировке на текстовом вводе. Оформить заказ [этот ответ] (http://stackoverflow.com/a/987376/777850) для получения более подробной информации – giorgio

+0

Это не связано с кодом. Это поведение браузера. Просто перейдите на веб-сайт, на котором есть текстовое поле ввода (например, www.google.com), а затем введите номер с точкой (i.e 1.00.1) в поле ввода, а затем дважды щелкните по вводу. Пожалуйста, сделайте это в трех браузерах (IE, Firefox и chrome), и вы увидите, что у Chrome другое поведение. –

+0

@giorgio. Я предположил, что это поведение браузера, но для меня это поведение очень бесполезно. Многие страны имеют формат даты с точками, поэтому изменить что-то с выбором двойного щелчка является ужасным. Для меня поведение в Chrome должно быть наоборот. Если у меня есть число в текстовом поле, выберите мою единственную часть между точками. Если у меня есть текст с точками, следует выделить весь текст. –

ответ

1

Должно быть возможным, но сложным. Сначала вам нужно определить позицию курсора на клике (первый щелчок dblclick), сохранить его и использовать в dblclick (второй щелчок): Get cursor position (in characters) within a text Input field Здесь ваша проблема заключается в том, чтобы не вызвать щелчок на dblclick, поскольку он изменит позиция курсора неверна (сброс курсора pos на 0). Я пытался, но это будет сложно управлять: http://jsfiddle.net/n2rzyxvg/3/

jQuery(document).on('click',"#input",function(){ 
    var clickpos = jQuery(this).getCursorPosition() ; 
    jQuery(this).data('clickpos',clickpos) ; 
    console.log("Click ! " + clickpos) ; 
}); 

jQuery(document).on('dblclick',"#input",function(){ 
    console.log("DblClick ! " + jQuery(this).data('clickpos')) ; 
}); 

Существует способ, но это не perfert (не уважает поведение ОС в DblClick, это установить пользовательский тайм-аут, чтобы имитировать DblClick): Jquery bind double click and single click separately Если вам удастся получить позицию курсора на DblClick, вы тогда просто должны найти свою первую и последнюю позицию символа, где вы хотите JQuery, чтобы начать/остановить свой выбор: Selecting Part of String inside an Input Box with jQuery

Я не могу помочь вам много больше, но сложная часть здесь - щелчок запуска dblclick, se cond должна быть проще.

Надежда это может помочь HF

+0

Спасибо! эта подсказка разрешает мою проблему :) –

+0

действительно? Но как вы решили проблему dblclick? Можете ли вы показать скрипт решения? –

+0

Я постараюсь сделать это сегодня вечером, а затем поставлю решение :) –

Смежные вопросы