2011-05-13 40 views
0

我有這個自動搜索文本輸入,當用戶鍵入一個字母時,它會進行新的搜索。現在我必須在每次搜索後關注這個元素,但是我在除Firefox之外的所有瀏覽器中選擇了輸入中的文本。如果用戶鍵入另一個字母,則選定的文本將被刪除,這意味着用戶必須在用戶輸入另一個字母之前取消選擇文本。當然,用戶會輸入新的字母,並認爲這個程序有問題。在某些瀏覽器上的元素焦點上自動選擇文本

是否可以取消選擇焦點上的文本或防止此選擇發生在第一位?

回答

3

分配文本框的值本身的重點將取消選擇的文本。

$('input').focus(function() { 
    var elem = $(this); 
    elem.val(elem.val()); 
}); 

Working Demo

+0

好吧,我用這個... – newbie 2011-05-13 10:16:24

+0

Thanx爲此,但在IE中有問題,當未聚焦和再次聚焦時,它將開始在輸入文字開始處編寫測試.. – newbie 2011-05-13 10:57:44

+0

@newbie:我明白你的意思了,IE9將光標跳回到'input'的開頭。你使用什麼版本? – Town 2011-05-13 11:11:23

0

我也不太清楚,但我認爲這可能是一個解決方案或簡單地使用屬性onselect="return;"

​​
+0

這不會出現在Chrome的工作:[演示](http://jsfiddle.net/Town/ r6Knr /)。 – Town 2011-05-13 10:01:55

+0

你使用什麼chrome版本? – Val 2011-05-13 10:31:35

+0

@town Im使用相同的版本我提供的演示作品 – Val 2011-05-13 10:33:28

0

我得到了它與下面的代碼工作:

var searchInput = $('input.search'); 
var l = searchInput.val().length; 
searchInput.attr('selectionStart', l); 
searchInput.attr('selectionEnd', l); 
searchInput.focus(); 
+0

這不適用於Chrome:[演示](http://jsfiddle.net/Town/D6Vr7/) – Town 2011-05-13 10:07:28

+0

這就是奇怪,因爲我在Chrome上測試它,我會嘗試你的代碼... – newbie 2011-05-13 10:11:56

+0

絕對不適合我在Chrome 11.0.696.65。我建議使用我的解決方案(不是我有偏見或任何東西!)),因爲'selectionStart'和'selectionEnd'不是一致的跨瀏覽器。 – Town 2011-05-13 10:16:18

相關問題