我使用Ajax.Autocompleter組件,它很好用 - 在一些瀏覽器中除了&符號。問題在於,不是將&符號打印到搜索字段中,而是充當ajax建議列表中的「向上」箭頭。這使我的用戶無法在搜索框中輸入帶&字符的名稱。通過'&'和')'禁用滾動瀏覽Ajax.Autocompleter建議列表
http://github.com/madrobby/scriptaculous/wikis/ajax-autocompleter
特定行爲的情況:
如果我嘗試輸入符號到我的搜索欄中顯示與建議列表之前,該符號被添加到搜索領域,一切都好。
如果我嘗試建議列表後鍵入符號已經可見,它將導航到列表的末尾,而不是,並沒有將添加到搜索欄(瀏覽器)。
如果我在IE11中重複這種情況,它也會導航到列表的末尾,但也會將和號添加到搜索字段。但是,在這種情況下,ajax搜索不會被觸發 - 建議列表將保持不變,因爲在我點擊'&'鍵,之前,無論搜索字段不是以&結尾。
Firefox只是將'&'字符添加到搜索框並刷新自動填充建議列表。正如我所料。
通過試驗和錯誤,我注意到:
- 當我在Chrome中打開F12,以及調試JavaScript中,符號被印刷的,而不是通過建議列表導航。當調試關閉時,它不會打印任何內容並導航。
- 如果我使用ctrl + v將&符號粘貼到搜索字段中,它在所有瀏覽器中都可以正常工作。另一方面,left + 38與上面提到的一樣,正常鍵。
我的代碼:
<input name="searchTxt" id="searchTxt" type="text" autocomplete="off" />
<div id="autocompleteResults" style="display:none;border:1px solid black;background-color:white;text-align:left;"></div>
<script type="text/javascript" language="javascript" charset="utf-8">
new Ajax.Autocompleter('searchTxt','autocompleteResults','someUrlToGetAutocompleteResults', {});
</script>
唯一的線索,我能找到到目前爲止是相當弱:
- 其在Chrome和YouTube搜索隱約類似符號的問題有人https://productforums.google.com/forum/#!topic/chrome/mpt4fkaAQPg
- 關於Ajax.Autocompleter的另一個StackOverflow線程,但相當無關How do I make an Ajax.Autocompleter perform a request without typing?
感謝任何幫助 - 我將更詳細地研究Ajax.Autocompleter項目,但由於這看起來也可能與瀏覽器有關,所以我希望有人可能至少有部分答案。