的jQuery 1.2.6jQuery Autocompleter如何使用POST?
jQuery.autocompleter插件v1.1pre(從jQuery的網站)
我不能用 '類型: 「POST」' 提交回我的web服務。我無法讓它被autocompleter識別。思考?
下面的代碼工作正常,只要我查找「q」查詢字符串。但是,我希望通過傳遞更多的參數來將其用於更高級的功能,並希望如何使用自動完成器進行回發。
我知道extraParams選項。但是,這些是通過GET或POST提交的額外參數(如果我們可以開始POST工作)。它不會將其更改爲POST提交。
$(function() {
$('#searchBox').autocomplete(
"/services/college.asmx/lookupColleges",
{
delay: 5,
minChars: 1,
matchSubset: 1,
matchContains: 1,
cacheLength: 10,
autoFill: false,
dataType: 'json',
parse: function(data) {
var rows = new Array();
for (var i = 0; i < data.length; i++) {
rows[i] = {
data: data[i]
, value: data[i].Data
, result: data[i].Name
};
}
return rows;
},
formatItem: function(row, i, n) {
return row.Name;
}
}).result(function(event, row) {
processSelection(this, row.Data);
});
});
我嘗試添加POST選項,如下面的代碼示例中所述。但它仍然作爲GET提交。
delay: 5,
minChars: 1,
matchSubset: 1,
matchContains: 1,
cacheLength: 10,
autoFill: false,
dataType: 'json',
type: 'POST',
任何幫助表示讚賞。
謝謝!
PS,這很多都沒有記錄,並且是在試驗和錯誤之後找出的PITA。感謝善良的螢火蟲。
你會注意到,我:
- 接收JSON回從WebService
- 自動完成無法處理原生JSON,所以我必須把它解析爲我自己的數組。
- 因爲我現在傳回一個自定義數組對象,所以需要覆蓋formatItem以便處理新的數組對象以用於顯示目的。
- 最後,我要在用戶選擇一個行(鼠標單擊或TAB或ENTER鍵)後處理該行上的額外數據。我用result()委託來做這件事。
我真的希望上面的代碼可以幫助其他人在將來弄清autocompleter。如果有,請給我一個表決權。
提示:屬性名稱data [i] .Data和data [i] .Name是JSON屬性名稱。
我會在本週晚些時候嘗試這個時候,當我回到這個任務(因爲它工作,現在使用GET)。我會讓你知道的。 – eduncan911 2009-07-13 12:42:22