jQuery UI 自动完成在输入字段中显示值而不是标签

2024-01-08

jQuery UI 自动完成的一个潜在的简单问题困扰着我。我的来源是

var ac = [
    {
        label: "One Thing",
        value: "One-Thing"
    },
    {
        label: "Two Thing",
        value: "Two-Thing"
    },      
]

我正在调用小部件

$(function() {
    $( "#search" ).autocomplete({
        source: PK.getAutocompleteSource(),
        focus: function( event, ui ) {
            $("#search").val(ui.item.label);
            return false;  
        },
        select: function( event, ui ) {
            $("#search").val(ui.item.label);
            PK.render(ui.item.value);
        }
    });
});

一切正常。当我输入#search输入字段,匹配的标签显示在下拉列表中,当我select执行正确的搜索。该小部件甚至显示label in the #search当我使用箭头键(或鼠标)在下拉列表中选择不同的项目时,输入字段。除了,当我按下回车键时,小部件就会填充#search输入字段与value而不是label。所以该字段显示一件事代替一件事.

我该如何纠正这个问题?我当然期待的是更合理的行为,不是吗?


如果您希望标签成为您的价值,只需将来源设为

var ac = ["One Thing", "Two Thing"]      

或者,select自动完成默认操作的方法是将value对象(如果指定)作为输入的值。你也可以把event.preventDefault()在选择函数中,它将把标签作为值(正如你所拥有的那样)

select: function( event, ui ) {
        event.preventDefault();
        $("#search").val(ui.item.label);
        PK.render(ui.item.value);
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery UI 自动完成在输入字段中显示值而不是标签 的相关文章

随机推荐