1

我想知道是否有一种方法,使用 jQuery,在将插入符号位置设置到已经在输入框中的文本前面时,禁止突出显示文本?

在下面的示例中,将光标放在最左侧的输入框中,然后按 Tab 键。您会注意到,当光标移动到下一个输入时,当插入符号位置更改时,文本会突出显示 - 这就是我希望能够停止的。

<input type="text" value="Some text here..." class="populated-text">
<input type="text" value="Any default text you like" class="populated-text">
<input type="text" value="Will be used as empty" class="populated-text">

$('.populated-text').each(function () {
    var input = $(this);
    input.data('blank-value', input.val());
    input.data('data-entered', false);
    input.addClass('grayed');
    input.keydown(keyDown);
    input.blur(blur);
    input.focus(focus);
    input.mousedown(mouse);
    input.mouseup(mouse);
});

这是一个示例:http: //jsfiddle.net/t5HMy/

4

2 回答 2

1

试试这个:

$('input').focus(function() {
   var $that = $(this);            
   setTimeout(function() {
       $that.selectRange(0,0); 
   }, 1)
})  

演示

于 2012-08-04T07:08:47.047 回答
0

请参阅这个有效的 jQuery示例

使用 jQuery,您可以在用户尝试聚焦时引发模糊事件。这将阻止他们输入文本。

$("#elem").focus(function() {
    $(this).blur();
}):

同样使用 CSS,显然这可能不适用于旧浏览器。你应该看看这个问题

#elem
{
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
于 2012-08-04T06:43:38.137 回答