使用JSON自动完成

时间:2017-03-22 08:39:54

标签: javascript jquery json autocomplete

我有JSON数据,我猜我的JSON是有效的,但有些东西我不明白它是如何工作的?当我写城市或国家没有任何事情发生时,我将如何使其发挥作用?

我有data-list属性,当我点击我的输入时,我的数据列表自动打开到目前为止还没关系。但是如果我写了一些东西,我的内联数据列表属性不再起作用,只有我的Json必须工作如何我能这样做吗?

我正在使用Awesomplete plugin,如果您想在codepen please click to see on codepen上看到我的项目

var myJSON = '{ "cities":[ "copenhagen", "london", "hamburg" ], "countries":[ "denmark", "norway", "sweden" ] }';

var myObj = JSON.parse(myJSON);
document.getElementById("demo").innerHTML = "Cities : " + myObj.cities;
document.getElementById("demo1").innerHTML = "countries : " + myObj.countries;

function showlist() {

}


var comboplete = new Awesomplete('input.dropdown-input', {
  minChars: 0,
});
Awesomplete.$('#test').addEventListener("click", function() {
  if (comboplete.ul.childNodes.length === 0) {
    comboplete.minChars = 0;
    comboplete.evaluate();
  } else if (comboplete.ul.hasAttribute('hidden')) {
    comboplete.open();
  } else {
    comboplete.close();
  }
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/awesomplete/1.1.1/awesomplete.min.css" rel="stylesheet" />

<div id="demo"></div>
<div id="demo1"></div>



<!--<input type="text" class="awesomplete" data-list="PHP,ASP,ASP.NET,Python,CSS,HTML,C#,C++,Delphi,Visual Basic" onclick="showlist()">-->

<br><br> with auto list

<input id="test" data-list="CSS, JavaScript, HTML, SVG, ARIA, MathML" class="dropdown-input" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/awesomplete/1.1.1/awesomplete.min.js"></script>

1 个答案:

答案 0 :(得分:1)

您必须访问属性&#34; data-list&#34;您的输入并将您的json设置为数据源。

试试这个:

    var testInput = document.getElementById("test");
    testInput.setAttribute("data-list", myObj.countries)