使用标签自动完成,而不是值

时间:2016-04-08 13:59:02

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

我想用jquery-ui添加一个自动完成字段。我有一个带有值和标签的对象列表,我希望当用户选择一个项目时,该值将出现在隐藏字段中,并且该标签位于自动完成字段中。但文档说“当用户选择项目时,该值将被插入到输入元素中。”

可以改变这种行为吗?我认为如果显示标签,它更加用户友好,而不是价值本身。

1 个答案:

答案 0 :(得分:1)

关注select字段:使用ui作为参数,您可以使用ui.item.labelui.item.value来完成魔术。 使用preventDefault()来阻止预定义的jQuery行为。

$('#your_element').autocomplete({
  // [...]    
  select: function(e,ui){
    e.preventDefault();
    // set value in your element
    $(this).val(ui.item.label);
    // set value in the hidden field
    $('#hidden').val(ui.item.value);
  },
  // [...]    
});