【问题标题】:Jquery auto complete feature in combo box with unique values具有唯一值的组合框中的 Jquery 自动完成功能
【发布时间】:2012-05-09 18:11:04
【问题描述】:

我在组合框中使用 Jquery ui 自动完成插件,并且正在从 JSON 文件中读取值。问题出在我的 JSON 文件中。我有相同值的字段。像这样。 ({ 名称:一个 }, { 名称:一个 }, { 姓名:乙 })

所以当我在组合框中输入“a”时,它会给我 2 个“a”。但我只需要一个 (我只需要 JSON 文件中的唯一值)。我该怎么做呢?我现在没有完整的代码,这就是为什么我不能把它。很抱歉,谢谢。

【问题讨论】:

    标签: javascript jquery json jquery-ui autocomplete


    【解决方案1】:

    编辑:在将数据发送到 jQuery 自动完成插件之前,您可以使用类似这样的方法从 json 数组中删除重复条目。

    var names = {};
    var param = "name"
    $.each(data.people, function() {
        if (!names[this[param]])
           names[this[param]] = [];   
        names[this[param]].push(this);
    });
    

    那我们就可以source: names

    【讨论】:

    • 谢谢@farhanahmad 所以现在我要做的是,获取 JSON 文件并将其分配给来自 'source:' 元素的 jQuery 自动完成插件。所以它就像,'来源:人'。 “人”是我的 JSON 文件。先生,您建议不要直接提供“人员” JSON 文件,而是将其过滤为唯一值。好的。我明白那个。但在那之后,我如何将其设置为“源”属性?
    • 非常感谢您宝贵的时间。会试试这个,让你知道。 @FarhanAhmad
    【解决方案2】:

    试试这个......只有唯一值可以添加到输入字段中

     select: function( event, ui ) {
    
          var terms = split( this.value );
          // remove the current input
          terms.pop();
          // add the selected item
    
          if(!($.inArray(ui.item.value,terms) > -1))
          terms.push( ui.item.value );
    
    
          // add placeholder to get the comma-and-space at the end
          terms.push( "" );
          this.value = terms.join( ", " );
          return false;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 2011-09-04
      • 2013-02-21
      相关资源
      最近更新 更多