jQuery UI自动完成 - 使用多个阵列& If-Statement for Output

时间:2013-07-08 16:59:05

标签: arrays jquery-ui if-statement jquery-autocomplete jquery-ui-autocomplete

我无法修改jQuery UI自动完成(自定义数据和显示)。 首先,如何让源选项调用多个数组。其次,能够检测自动完成结果来自哪个数组,并在if语句中使用它。

我会尽量保持清晰,因为我是jQuery的新手......任何指导都会非常感激!

更完整的代码示例:http://codepen.io/seejaeger/pen/iqbke


概述

  1. 声明&将2个本地数组连接为源
  2. 跟踪建议结果来自哪个阵列
  3. 使用if语句根据父数组显示不同的输出
  4. 每个数组项都有valuelabeldesc

    我特别关注desc,因为它被用作不可搜索的数据,并且能够输出两种不同的格式化结果。见下文:

    第一个数组

    var funds = [
      {
        value: "fundtest",
        label: "Fund Name Test", //searchable
        desc: "(Ticker)", // non-searchable
      },
      {
        value: "fundtest2",
        label: "Fund Name Test 2", //searchable
        desc: "(Ticker)", // non-searchable
      }
    ];
    

    第二个数组

    var tickers = [
      {
        value: "tickertest",
        label: "(Ticker Test)", //searchable
        desc: "Fund Name", //non-searchable
      },
      {
        value: "tickertest2",
        label: "(Ticker Test)", //searchable
        desc: "Fund Name", //non-searchable
      }
    ];
    

    输出

    如果搜索建议来自funds数组,则输出:

    item.label + " " + item.desc  
    

    如果搜索建议来自tickers数组,则输出:

    item.desc + " " + item.label
    

    注意他们是如何交换的?

    不同的HTML输出结构将允许两个结果输出到屏幕:'基金名称(自动收报机)'


    更新

    第1部分&现在解决了2 第3部分仍有一些问题。
    一旦我解决了它,最终会发布一个答案(除非有人神奇地说话)。

    非常感谢TR的指导。

    在此处查看此作品的最新版本:
    http://codepen.io/seejaeger/pen/iqbke

1 个答案:

答案 0 :(得分:1)

解决这个问题的关键因素是:

  • 添加类似于origin的密钥(如果使用循环来附加此密钥会更优雅,我可以在更新中添加它。)

  • 将两个数组连接成一个,以便可以将其读作source

  • if-statement函数中.data除去了origin自动填充数据的来源,并根据{{1}以特定方式输出结果}}

工作演示:http://codepen.io/seejaeger/pen/iqbke

-

origin