禁用突出显示输入中文本的功能

时间:2012-08-04 06:35:09

标签: jquery

我想知道是否有一种方法,使用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/

2 个答案:

答案 0 :(得分:1)

试试这个:

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

DEMO

答案 1 :(得分:0)

请参阅此jQuery example

使用jQuery可以在用户尝试聚焦时导致模糊事件。这将阻止他们输入文字。

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

同样使用CSS,显然这可能不适用于旧浏览器。您应该查看此question

#elem
{
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}