2013-09-27 113 views
5

我有一个jquery自动完成类型提前字段。它正确地工作并提示我值。但是,它要求我点击我想选择的选项。jquery自动完成 - 使用选项卡键入提前执行而不是选择自动完成选项

如果提前输入的值是1234,并且我点击1234,它会用这个值运行一些逻辑,在下面的例子中提醒。

但是,如果我在1234中输入并按Tab键,则未选择自动完成选项,因此警报不会触发。我怎么能告诉jquery假设按下tab时选择了输入值,而不是强制用户从提前自动填充类型中选择一个选项?

我的语法如下:

function callAutocomplete(element) 
{ 
    $(element).autocomplete( 
    { 
     source: "get_sku_codes", 
     messages: 
     { 
      noResults: '', 
      results: function() {} 
     }, 
     select: function(event, ui) 
     { 
      var selectedObj = ui.item; 
      alert(selectedObj); 
     } 
    }); 
} 

重申,我想键入1234到输入字段,按选项卡,并自动完成逻辑必须被称为如果我点击了自动完成建议“1234” 。

可以这样做吗?也许输入的onchange事件,但我如何获得调用onchange函数来调用自动完成逻辑?

希望是有道理的。

一如既往的感谢。

回答

8

我相信你想要的autoFocus选项:

如果设置为true的第一个项目将自动时显示的菜单被聚焦。

考虑到这一点,你只需要改变你的widget的初始化:

function callAutocomplete(element) 
{ 
    $(element).autocomplete( 
    { 
     source: "get_sku_codes", 
     messages: 
     { 
      noResults: '', 
      results: function() {} 
     }, 
     select: function(event, ui) 
     { 
      var selectedObj = ui.item; 
      alert(selectedObj); 
     }, 
     autoFocus: true 
    }); 
} 

例子:http://jsfiddle.net/WP29E/132/

+1

容易,哇!谢谢安德鲁。 – Smudger

+0

@Smudger:没问题,很乐意帮忙。 –