使用Tab键而不是选择自动完成选项来执行jQuery自动完成 - 类型前缀。

6

我有一个 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个回答

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
    }); 
}

Example: http://jsfiddle.net/WP29E/132/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接