jQuery自动完成手动输入

时间:2011-12-22 05:00:23

标签: jquery jquery-ui jquery-autocomplete

这里是场景1:用户开始键入一些单词,自动完成引擎显示建议列表(在ajax请求之后)。用户点击该列表中的某个项目。 select事件已被触发。一切都很好。

场景2:用户开始键入一些单词,自动完成引擎显示建议列表(在ajax请求之后)。但这次用户没有点击项目并转到另一个字段。尚未触发select事件。但用户输入的值是正确的。如何手动触发选择事件? 谢谢。

1 个答案:

答案 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相同的处理程序。应该是相同的。