这里是场景1:用户开始键入一些单词,自动完成引擎显示建议列表(在ajax请求之后)。用户点击该列表中的某个项目。 select事件已被触发。一切都很好。
场景2:用户开始键入一些单词,自动完成引擎显示建议列表(在ajax请求之后)。但这次用户没有点击项目并转到另一个字段。尚未触发select事件。但用户输入的值是正确的。如何手动触发选择事件? 谢谢。
答案 0 :(得分:2)
$(document).on('blur', "#inputField", function () {
$(this).trigger('autocompleteselect');
});
根据Karthik的建议,解释:绑定输入框的模糊事件的处理程序,以便当用户离开字段时,它会运行。此函数然后调用触发'autocompleteselect'事件,该事件应该(理论上)也绑定到此输入框。由于nKognito说这不起作用......好吧,我想在我可以进一步排除故障之前需要看一些代码。
修改的
好的,基于你的jsfiddle,我已经尝试过,但未能触发autocompleteselect工作。所以现在,我建议这样做:
var list = [{id:1,Name:"John"},{id:2,Name:"Johna"}];
$('#a').autocomplete({
source: function(request, response) {
response($.map(list, function(item) {
return {id : item.id, label : item.Name};
}));
},
minLength: 2,
select: function () { selectHanlder(this) }
}).blur(function () { selectHandler(this) });
function selectHandler(this) {
// do what you will
}
这将在blur事件上调用与autocompleteselect相同的处理程序。应该是相同的。