我剛剛在頁面中添加了jQuery UI組合框。它似乎將選擇限制爲僅傳入(或出現在選擇列表中)的選擇。我想要做的是讓用戶輸入一個不在選擇列表中的值,然後將數據發送到服務器(在帖子上)並創建一個。我看不到任何禁用「驗證」的選項。我將如何去添加這個功能?如何使用jQuery UI組合框創建新值
- 編輯 -
我在添加代碼即可獲得自動完成標有按鈕的工作。然而,這在調用Ajax方法時不起作用。 Ajax方法正確地返回json(顏色列表),但是當我開始輸入'Re'時,希望它會過濾掉包含Red的項目,但不會。
這裏是我的代碼:
var $colInput = $("#Colour").autocomplete({
source: function (request, response) {
$.ajax({
url: "/admin/stockitems/colours",
dataType: "json",
data: { id: null },
success: function (data) {
var arr = [];
$.each(data, function (i, val) {
arr.push(val.Title);
});
response(arr);
}
});
},
minLength: 0
}).addClass("ui-widget ui-widget-content ui-corner-left");
$("<button type='button'> </button>")
.attr("tabIndex", -1)
.attr("title", "Show All Items")
.insertAfter($colInput)
.button({
icons: {
primary: "ui-icon-triangle-1-s"
},
text: false
})
.removeClass("ui-corner-all")
.addClass("ui-corner-right ui-button-icon")
.click(function() {
// close if already visible
if ($colInput.autocomplete("widget").is(":visible")) {
$colInput.autocomplete("close");
return;
}
$(this).blur();
$colInput.autocomplete("search", "");
$colInput.focus();
});
通過Ajax調用在這裏掙扎。我用一些本地數據處理了你的例子,但是當我調用一個Ajax結果並在響應中傳回一個數組時,這些項目不會被濾除。我會在下面的回覆中添加我的代碼。 – lloydphillips 2011-04-26 01:55:02
嗨安德魯,我編輯包括我的代碼上面。希望你可以對此有所瞭解,我花了大約一個半小時的時間試圖讓它過濾。 – lloydphillips 2011-04-26 01:58:28
忽略我。得到它的工作。稍後將發佈我的代碼,意識到它是在每個字符輸入中向我的控制器輪詢,而不是處理緩存(本地)結果 - der! :) – lloydphillips 2011-04-26 02:05:45