6

我有一个 jquery 自动完成类型提前字段。它工作 100% 正确并提示我输入值。但是,它确实要求我单击要选择的选项。

如果预先输入的值为 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 函数来调用自动完成逻辑?

希望这是有道理的。

一如既往地感谢。

4

1 回答 1

9

我相信你想要的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/

于 2013-09-27T10:46:08.667 回答