没有带链接的jQuery的自动完成下拉列表

时间:2016-03-11 12:48:30

标签: javascript html html5 autocomplete html-datalist

我尝试使用HTML5 datalist属性使用自动完成下拉菜单,而不使用JQuery。但是我希望每个建议在被选中后进入特定的链接(或者当按下输入时,转到第一个建议)。

我现在拥有的是:

<form action="www.site.com/search?q=" method="get">

 <input name="q" type="text" id="txtAutoComplete" list="languageList"/>

  <datalist id="languageList">

   <option value="OPTION1" />
   <option value="OPTION2" />

  </datalist>

</form>

在这种情况下,它会在网站中执行搜索。我希望每个选项都能打开一个特定的链接,或者在链接http://www.hitsebeats.ninja/search/label/ VALUE_HERE 的末尾使用,这将转到Blogger中的正确标签。在最后一种情况下,我考虑添加事件onclick

<datalist id="languageList" onclick='location=this.options[this.selectedIndex].value;>

    <option value='http://www.hitsebeats.ninja/search/label/OPTION1'>
    OPTION1
    </option>

</datalist>

但没有成功。

2 个答案:

答案 0 :(得分:1)

在评论中的OP反馈后添加另一个答案。仅当数据列表中存在键入的选项时,才应重定向。

<script>
    function redirect(value) {
        var options = document.getElementById("languageList").options;

        for(var i = 0; i < options.length; i++) {
            if (options[i].value == value)
                window.location='http://www.example.com/' + value;
        };
    }
</script>
<form action="http://www.example.com/search?q=" method="get">
  <input name="q" type="text" id="txtAutoComplete" list="languageList" onchange="redirect(this.value)" />

  <datalist id="languageList">
    <option value='OPTION1'>OPTION1</option>
    <option value='OPTION2'>OPTION2</option>
  </datalist>
</form>

<小时/>

首次尝试

在输入元素上使用oninput,您可以根据您选择的选项更改位置。

<form action="http://www.example.com/search?q=" method="get">
  <input name="q" type="text" id="txtAutoComplete" list="languageList" onchange="window.location='http://www.example.com/' + this.value" />

  <datalist id="languageList">
    <option value='OPTION1'>OPTION1</option>
    <option value='OPTION2'>OPTION2</option>
  </datalist>
</form>

告诉我这是不是你的期望。

答案 1 :(得分:0)

所以,你知道,datalist没有选择事件,它不是用户控件。但您可以收听输入更改事件,并使用它来更改网址。