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

问题描述 投票:2回答:2

有没有一种方法可以强制jQueryUI自动完成显示数据标签而不是数据值:

例如

[{“ label”:“ name”,“ value”:“ 1”},{“ label”:“ name3”,“ value”:“ 6”},{“ label”:“ name1”,“ value “:” 8“},{” label“:” name2“,” value“:” 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;
    }
})

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

javascript jquery jquery-ui jquery-ui-autocomplete
2个回答
11
投票

请确保从您的return false事件处理程序中选择focus或阻止该事件的默认操作:

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

0
投票

回调函数对我不起作用。因此,我使用了绑定事件autocompletefocus,并且工作正常。

$('input[name="user-name"]').on("autocompletefocus", function (event, ui) {
   event.preventDefault();
   $(this).val(ui.item.label);
});
© www.soinside.com 2019 - 2024. All rights reserved.