3

有没有办法可以强制 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;
    }
})

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

4

2 回答 2

12

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

focus: function(event, ui){
    event.preventDefault();
    $('input[name="user-name"]').val(ui.item.label);
},
于 2013-03-24T16:17:55.807 回答
0

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

$('input[name="user-name"]').on("autocompletefocus", function (event, ui) {
   event.preventDefault();
   $(this).val(ui.item.label);
});
于 2020-02-05T00:37:02.660 回答