我在HTML输入字段中输入了带有点的数字文本,即“1.00.1”。如果我在IE或firefox中双击该字段,浏览器将仅选择文本的一部分(点之间),但在Chrome中,双击此字段中的整个文本。
在Chrome中更改此行为的最佳方法是什么?如果我在输入字段中只有文本(即“test.test”),则双击并在Chrome中进行选择与IE和Firefox一样。

最佳答案

这应该是可能的,但是很复杂。首先,您必须检测单击时的光标位置(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')) ;
});

有一种方法,但是不适合(不尊重dblclick的操作系统行为,它设置了一个自定义超时来模仿dblclick):
Jquery bind double click and single click separately
如果您可以设法在dblclick上获取光标位置,则只需找到要让jQuery开始/停止选择的第一个和最后一个字符位置:
Selecting Part of String inside an Input Box with jQuery

我不能为您提供更多帮助,但是困难的部分是dblclick触发点击,第二部分应该更容易。

希望这可以帮助
高频

09-20 00:22