我正在使用DevBridge jQuery自动完成,工作正常,但我想强制用户从下拉列表中选择一个选项。
有没有办法做到这一点?
var airports = [
{ value: 'Manchester (MAN)' },
{ value: 'Bangkok (BKK)' },
{ value: 'New York (JFK)' }
];
$('#autocomplete').autocomplete({
lookup: airports
});
答案 0 :(得分:2)
我使用的功能是carl_01@email.com
onInvalidateSelection
这对我来说最有效。
答案 1 :(得分:0)
这是我的做法:
现在,我在此控件上找不到“挂载”或“初始化”事件(并且我认为它们应该添加一个),因此我更改了自动完成的初始化方式-我通过自己的函数来完成调用devBridgeAutocomplete并附加一个焦点侦听器:
$.MyNamespace.fs.autocomplete = function (elems, options) {
elems.devbridgeAutocomplete(options);
elems.focusout(function (e) {
var txt = $(this);
if (txt.attr("ac-selected-value") !== txt.val()) {
txt.val("");
}
});
};
...
// Set AC defaults:
$.Autocomplete.defaults.autoSelectFirst = true;
$.Autocomplete.defaults.onSelect = function (suggestion) {
$(this).attr("ac-selected-value", suggestion.value); // stash a valid value here
};
... // I also use this, but this alone will not get you far:
$.Autocomplete.defaults.onInvalidateSelection = function () {
$(this).val("");
};
然后,在该行的某个地方,初始化一个像这样的字段:
$.MyNamespace.fs.autocomplete($("#select-something"), {
serviceUrl: 'some-url'
});
如果您不想在某些元素上列出,则可以使用经典:
$("#select-something").devbridgeAutocomplete({
serviceUrl: 'some-url'
});
HTH