2011-12-22 110 views
0

这里是场景1:用户开始键入一些字,自动完成的发动机示出了表明列表(AJAX请求之后)。用户点击该列表中的某个项目。选择事件已被触发。一切安好。jQuery的自动完成手动输入

场景2:用户开始键入一些字,自动完成的发动机示出了表明列表(AJAX请求之后)。但是这次用户没有点击物品并转到另一个区域。 select事件尚未被触发。但是输入的用户值是正确的。我如何手动触发选择事件? 谢谢。

回答

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 
      } 

这只是调用相同的处理作为autocompleteselect,在模糊事件。应该是相同的效果。

+0

@杰克:试着给出解释你的答案。因此,每个人都可以理解你想说什么。 – karthik 2011-12-22 05:16:25

+0

不起作用。 jQuery的 - 1.7.1,UI - 16年1月8日从 – nKognito 2011-12-22 05:18:46

+0

反馈 – 2011-12-22 05:41:12