【问题标题】:After selecting datalist item , the dropdown remains. How can i make sure it disappears?选择 datalist item 后,下拉列表仍然存在。我怎样才能确保它消失?
【发布时间】:2018-05-17 23:02:24
【问题描述】:
<input class="c-search__textbox c-form__textbox"  id="top-query" list="top-json-datalist" onkeyup="suggest(this)" autocomplete="off" type="text" name="q" value="" placeholder="Type something . . .">

<datalist id="top-json-datalist"></datalist>

function suggest(elem) { 

if(elem.id == "query") {
    document.getElementById("query").disabled = false;
    var dataList = document.getElementById('json-datalist');
    var input = document.getElementById('query');
} else if (elem.id == "top-query") { 
    document.getElementById("top-query").disabled = false;
    var dataList = document.getElementById('top-json-datalist');
    var input = document.getElementById('top-query');
}

var request = new XMLHttpRequest();

// Handle state changes for the request.
request.onreadystatechange = function(response) {
  if (request.readyState === 4) {
    if (request.status === 200) {
        var data = JSON.parse(request.responseText);
        var jsonOptions = data.hits;
        dataList.innerHTML = '';
        jsonOptions.forEach(function(item) {
            var option = document.createElement('option');
            option.value = item["query"];
            dataList.appendChild(option);
        });
    } 
  }
};

request.open('GET','https://api.lite.s4p.jp/v1/suggest&query='+input.value,true);
request.send();

如您所见,我能够从 ajax 调用加载数据列表项。 我能够看到下拉列表中的项目。但是,问题是当项目被选中时,下拉菜单仍然存在。

谢谢!

【问题讨论】:

    标签: javascript datalist


    【解决方案1】:

    我想知道您是否在您的建议功能中做了一些导致问题的事情,如果您删除 onkeyup="suggest(this)" 是否有效?

    另一件事是对datalist的支持似乎quite buggy according to caniuse。你在其他浏览器上试过吗?

    抱歉,我只是发表评论,但我还没有足够的代表。

    【讨论】:

    • 如果我删除 onkeyup="suggest(this)" 它将无法工作它在 Firefox 上运行良好,但由于支持问题而在 Safari 上无法运行。我想我会避免使用 datalist 元素 :-) 谢谢!
    • @omrajpurohit 不客气。如果你觉得我的回答有帮助,你介意接受吗,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多