我刚刚在页面中添加了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