2012-12-17 49 views
2

我想對於那些沒有爲autofocus屬性支持的瀏覽器提供支持,採用的方法是這樣的:jQuery的「有屬性」選擇在IE7失敗(「自動對焦」)

<input type="text" autofocus/> 
<input type="text" autofocus="autofocus"/> 
<input type="text"/>​ 

<script type="text/javascript"> 
    $("input[autofocus]").first().focus(); 
</script> 

但是,該選擇器正在返回IE7的所有輸入元素,包括沒有「自動對焦」屬性的元素。它的工作IE8 +,我已經測試使用jQuery 1.6.4,1.7.2和1.8.2。我在這裏有一個jsfiddle:http://jsfiddle.net/HSC7K/4/

這些jQuery的門票似乎有關,但已被關閉:

http://bugs.jquery.com/ticket/5637

http://bugs.jquery.com/ticket/7874

編輯: 更新的jsfiddle:http://jsfiddle.net/HSC7K/6/

+0

如果你使用的是HTML5,你需要包含一個shiv以允許自動聚焦等元素。你做到了嗎? –

+0

我正在使用自定義屬性,而不是HTML5元素,所以AFAIK它不需要shiv。我已經更新了小提琴,以顯示自定義屬性正在工作,但如果該屬性被稱爲「自動對焦」,它不起作用。 –

+0

自定義屬性在XHTML中無效 - 您的文檔類型是什麼? http://stackoverflow.com/questions/2413147/are-custom-attributes-ok-in-xhtml自動對焦是HTML5中的新功能 –

回答

1

我打這個試圖自動對焦同樣的問題在AJAX呼叫之後。

$("input[autofocus]").first().focus(); 

只是不工作。我使用IE 11. 我發現如果你刪除它的輸入選擇器的作品。所以......

$("[autofocus]").first().focus();