2

我有以下問題。在作爲自動完成者工作的文本輸入字段中,它返回的一些建議比它慢。問題出現在你離開現場時。在IE中,文本光標位於建議字符串的末尾,因此您只能看到它的最後一部分。所以我用下面的代碼來解決這個問題,它在IE6下工作,但在IE8中這是行不通的,這個字段總是被選中,我不能選擇頁面上的任何東西。createTextRange - IE8中的奇怪行爲

我的問題是什麼是正確的方式來移動光標在輸入字段的開始,離開後?

 
$('#myAutocompleter').blur(function(){ 
    textRange = this.createTextRange(); 
    textRange.collapse(true); 
    textRange.select(); 
}); 

(使用的代碼是用jQuery的。)

回答

0

我不知道我理解你的問題,但IE瀏覽器有它自己的一套頁面上處理文本選擇的方法,這樣就會爲什麼它的行爲有所不同。

看看這裏的教程: http://www.quirksmode.org/dom/range_intro.html

這裏的兼容性: http://www.quirksmode.org/dom/w3c_range.html

如果這不是你的問題,嘗試做一個鼠標鬆開或點擊裏面的模糊事件的檢查,並把選擇的代碼呢?也許這會導致選擇從輸入字段移開,然後再將其放到選擇的位置。

+0

我一般的問題是如何IE的文本對齊成離開後我離開輸入「文本輸入提交」。在Mozilla FF中,這是由瀏覽器處理的,但是在IE中它不是。我試圖用我的帖子中的代碼來做到這一點,但它不能正常工作。 – bozhidarc 2009-10-26 14:17:00

0

我有類似的情況,我想看到東西的頂部/底部取決於這樣的事情。 我用jQuery的scrollTo插件

).scrollTo('100%') 

).scrollTo('0%') 

編輯1: 我使用它在這一領域:

<textarea cols="57" rows="2" class="cssTextarea cptEntryArea"></textarea> 

與此代碼:

$(".cptEntryArea").change(function() 
     { 
      $(this).scrollTo('0%'); 
    }); 
+0

我完全不知道你的情況和我的一樣,但scrollTo()不能用於文本字段。 – bozhidarc 2009-10-30 11:54:16

3

我相信你是什麼尋找的是文本範圍的.moveStart.moveEnd方法:

$('#myAutocompleter').blur(function(){ 
    textRange = this.createTextRange(); 
    textRange.collapse(true); 
    textRange.moveEnd('character',0); 
    textRange.moveStart('character',0); 
    textRange.select(); 
}); 

(在IE8測試功能)