【发布时间】:2011-08-24 19:06:10
【问题描述】:
我有这个自动搜索文本输入,当用户输入一个字母时会进行新的搜索。现在我必须在每次搜索后关注这个元素,但是我在除 Firefox 之外的所有浏览器中都选择了输入中的文本。如果用户键入另一个字母,则选定的文本将被删除,这意味着用户必须先取消选择文本,然后才能键入另一个字母。当然用户会输入新的字母并认为这个程序有问题。
是否可以取消选择焦点上的文本或阻止此选择首先发生?
【问题讨论】:
我有这个自动搜索文本输入,当用户输入一个字母时会进行新的搜索。现在我必须在每次搜索后关注这个元素,但是我在除 Firefox 之外的所有浏览器中都选择了输入中的文本。如果用户键入另一个字母,则选定的文本将被删除,这意味着用户必须先取消选择文本,然后才能键入另一个字母。当然用户会输入新的字母并认为这个程序有问题。
是否可以取消选择焦点上的文本或阻止此选择首先发生?
【问题讨论】:
我不太确定,但我认为这可能是一个解决方案,或者只是使用属性onselect="return;"
$('#selector').select(function (e){
e.preventDefault();
return;
});
【讨论】:
在焦点上将文本框的值分配给自身将取消选择文本。
$('input').focus(function() {
var elem = $(this);
elem.val(elem.val());
} );
【讨论】:
input 的开头。你用的是什么版本?
我得到它使用以下代码:
var searchInput = $('input.search');
var l = searchInput.val().length;
searchInput.attr('selectionStart', l);
searchInput.attr('selectionEnd', l);
searchInput.focus();
【讨论】:
selectionStart 和selectionEnd 跨浏览器不一致。