Jquery Autocomplete键按下显示标签名称而不是值?

时间:2013-03-24 10:52:22

标签: javascript jquery jquery-ui jquery-ui-autocomplete

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

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

2 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:0)

回调函数对我不起作用。所以我使用了绑定事件autocompletefocus并正常工作。

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