我有一個jQuery UI自動完成控件,當minLength = 3時觸發Ajax請求。問題如下: 說我輸入「fic」作爲初始搜索字詞 - 這很好。請求觸發並返回結果。我決定不想選擇任何結果,然後再次重新輸入相同的搜索(fic)。這一次沒有Ajax請求觸發!jQuery UI自動完成不會觸發搜索,當輸入迄今搜索的術語
我的代碼如下所示:
// ... do request
$("#reportSearch").autocomplete({
delay: 50,
minLength: 3,
source: function(q, add){
$.ajaxSetup ({ cache: false});
$.ajax({
type: "GET",
url: K_URL_REQUEST
所以基本上「源」回調在我上述第二方案未燒製。看來,這樣做的原因是,自動完成控制拿着到以前的搜索詞,因爲它匹配的 - 沒有觸發搜索:
// Taken from jquery-ui-1.8.4.custom.min.js
if (a.term != a.element.val()) { // *** THE MATCH IS HERE
//console.log("a.term != a.element.val(): "+a.term+", "+a.element.val());
a.selectedItem = null;
a.search(null, c) // *** SEARCH IS TRIGGERED HERE
}
爲了得到它每次啓動時,我只需在搜索返回後將搜索詞重置爲空。這樣,它按預期工作。
事情是我不明白這種行爲。我會認爲每個搜索應該是不同的。沒有緩存(或者不應該)。
所以,儘管我已經解決了我的問題,我仍然覺得我錯過了這裏的一些東西。
任何想法的人?提前致謝!
Whate做你的[**'search' **](http://docs.jquery.com/UI/Autocomplete#event-search)事件看喜歡?據我瞭解,自動完成應該在第二種情況下觸發。 – 2010-10-18 01:44:03
請注意如何輸入'jav'將其刪除,然後再次輸入,並且它仍然可以在此演示中運行==> http://jsfiddle.net/KFrQm/。 – 2010-10-18 01:55:55
嗨,彼得 - 我沒有搜索事件。沒有必要開始搜索。你對這個例子是正確的。我之前意識到這一點 - 唯一的區別是我的源代碼是ajax請求。 – peetj 2010-10-18 07:59:35