第一個問題(並希望,但懷疑我只有一個)jQuery UI自動完成行爲。如何搜索輸入的自由文本?
我正在使用jQuery UI自動完成。以下是複製我的問題的示例代碼。
var suggestions = ["C", "Clojure", "JavaScript", "Perl", "PHP"];
$("#autocomplete").autocomplete({
source: suggestions
});
當用戶鍵入'J'時,他們會被提示'Clojure'和'JavaScript'作爲建議。
我從這個列表中省略了Java,如果用戶想要搜索Java,他們鍵入'Java',請按回車鍵但表單不提交。如果您添加一個空格,'JavaScript'建議消失,並且可以通過按回車鍵提交表單。
我正在創建免費搜索,我希望用戶能夠通過按Enter鍵進行搜索,即使有可用的建議。
$("#autocomplete").keypress(function(event) {
alert(event.keyCode);
if (event.keyCode=='13') $this.closest('form').submit();
});
我嘗試了上述想法我可以手動檢測提交按鍵並提交表單,但該警報顯示檢測到所有按鍵EXCEPT提交這似乎是由自動完成被抑制。
任何幫助,非常感謝!謝謝。
嗨,我很感謝你不厭其煩地迴應。 – John 2010-09-24 22:38:09
哎呀,似乎堆棧溢出具有相反的問題,並輸入提交我的迴應,而不是我預期的新行!此代碼不能解決問題,出於某種原因,輸入密鑰,代碼'13'只是無法通過按鍵識別。這就像它被故意禁用,我只是無法解決如何啓用它!如果您使用id ='key'創建一個div並在keypress函數中添加以下內容:$('#key').text('Key:'+ e.keyCode);並輸入你將會看到我的意思!如果沒有任何建議,它只會收到'13'。任何想法如何強制它提交輸入?謝謝! – John 2010-09-24 22:42:36
感謝您的更新...仍然沒有在我的最終(我使用Chrome瀏覽器,您的瀏覽器可能處理不同?),但我也設法讓它在這裏工作。看看自動完成的代碼,它有一個keydown綁定在輸入按鍵的地方: if(self.menu.element.is(「:visible」)){event.preventDefault(); } 這就是停止表單提交輸入(我一直試圖恢復的默認行爲!)。考慮到這一點,我們所需要做的就是用keydown替換keypress,我們的代碼在我嘗試過的瀏覽器中工作。 感謝您的幫助! – John 2010-09-27 13:33:48