考慮下面的HTML:HTML選擇:消除瀏覽器按鍵更改的延遲?
<select>
<option>Aardvark</option>
<option>Buffalo</option>
<option>Camel</option>
<option>X-ray Fish</option>
<option>Yak</option>
<option>Zebra</option>
</select>
在大多數瀏覽器中,當選擇元素具有焦點時,按下按鍵選擇的值更改爲與輸入的字符開頭的下一個選項。例如,在鍵盤上按下'B',而上面的<select>
元素具有焦點時,將所選值更改爲「Buffalo」。之後按'Z'將會將值更改爲「Zebra」。
但是我剛剛發現,至少在我的電腦上的Firefox 6和Safari 5中,有一段時間才能按下選擇下一個值。在上面的具體示例中,如果按「B」,然後在不到一秒鐘後按「Z」,則看起來沒有任何事情發生。但是,在進一步的測試中(使用jQuery),我發現無論您按多快鍵,JavaScript事件'keydown','keyup'和'keypress'都會像您所期望的那樣被解僱。瀏覽器本身不會切換選定的選項,直到經過一段時間。
有什麼辦法可以解決這個問題嗎?
瀏覽器可能會搜索一個以「BZ」開頭(並失敗)的值,而不是跳轉到以「Z」開頭的值。我想你可以重寫關鍵事件並自己找到價值,但這不是一個很好的解決方案。 –
它在瀏覽器中的工作方式是它搜索你輸入的內容。如果你輸入bz,它會搜索從bz開始的東西。這對於例如在那些三重詛咒的下拉框中輸入你的出生年,所以你可以輸入1984年或其他任何東西。如果您暫停一會兒,瀏覽器會「忘記」您鍵入的內容,然後再次輸入時會開始一個新的「搜索」。 – Asmor