jquery autocomplete - 使用制表符键入提前执行,而不是选择自动完成选项

时间:2013-09-27 10:35:27

标签: jquery jquery-ui autocomplete jquery-ui-autocomplete

我有一个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,按Tab键,必须调用自动完成逻辑,就像我点击了自动完成建议'1234'一样。

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

希望这是有道理的。

一如既往地谢谢。

1 个答案:

答案 0 :(得分:8)

我相信你想要autoFocus选项:

  

如果设置为true,则会在显示菜单时自动聚焦第一个项目。

考虑到这一点,您只需要更改窗口小部件的初始化:

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/