Jquery自动完成键按下显示标签名称而不是值

Jquery Autocomplete key press down display label name rather than value?

本文关键字:标签名 显示 Jquery      更新时间:2023-09-26

是否有办法强制jQueryUI自动完成显示数据标签而不是数据值:

例如

[{"标签":"名字","价值":"1"},{"标签":"name3"、"价值":"6"},{"标签":"name1"、"价值":"8"},{"标签":"name2"、"价值":"10"}]

$( ".auto-search" ).autocomplete({
    minLength: 2,
    dataType: 'json',
    source: tempJson,
    focus: function(event, ui){
        $('input[name="user-name"]').val(ui.item.label);
    },
    select: function (event,ui){
        $('input[name="user-name"]').val(ui.item.label);
        $('input[name="user-id"]').val(ui.item.value);
        return false;
    }
})

上面的代码,当您按下向下按钮时,显示值而不是标签。可以改成显示标签吗?

确保return false或阻止focus事件处理程序对事件的默认操作:

focus: function(event, ui){
    event.preventDefault();
    $('input[name="user-name"]').val(ui.item.label);
},

回调函数对我不起作用。所以我使用绑定事件autocompletefocus,工作得很好。

$('input[name="user-name"]').on("autocompletefocus", function (event, ui) {
   event.preventDefault();
   $(this).val(ui.item.label);
});