希望这是有道理的。我有一个使用 jQuery UI 自动选择功能的文本输入。当用户选择时,输入会自动填充,这是应该的。我的问题是,如果用户输入了某些内容,但没有从下拉列表中选择。这会导致文本输入值在表单提交时列表中不存在。我想知道是否有办法对“更改”事件执行操作(明文输入值),但将其保留为“选择”事件。
问问题
453 次
2 回答
1
如果我对您的理解正确,您应该能够利用ui
传递给change
事件处理程序的参数:
$("#auto").autocomplete({
/* options */
change: function (event, ui) {
if (!ui.item) {
this.value = '';
}
}
});
ui.item
undefined
如果未从自动完成候选列表中选择任何内容,将是。
示例:http: //jsfiddle.net/ZBzpF/
于 2012-08-29T02:17:19.437 回答
0
在更改事件处理程序中,检查当前值是否在源中,如果没有,则重置它。就像是:
var sourceArray = ["a", "b", "c"],
$autocomplete = $('#autocomplete');
$autocomplete.autocomplete({
source: ,
change: function(e, ui) {
if ($.inArray($autocomplete.val(), sourceArray) === -1) {
//change the value
}
})
}
于 2012-08-28T22:29:27.863 回答