【问题标题】:Autocomplete with label, not value使用标签而不是值自动完成
【发布时间】:2016-04-08 13:59:02
【问题描述】:

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

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

【问题讨论】:

  • 我可以在 select 函数中使用 setTimeout,它可以工作,但也许有更好的解决方案

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


【解决方案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);
  },
  // [...]    
});

【讨论】:

    猜你喜欢
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 2012-05-11
    • 2015-12-26
    • 1970-01-01
    • 2021-08-13
    相关资源
    最近更新 更多