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

标签 javascript html autocomplete html-datalist

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

我现在拥有的是:

<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>

但没有成功。

最佳答案

在评论中反馈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>

告诉我这是否是你所期望的。

关于javascript - 没有 jQuery 且带有链接的自动完成下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35940700/

相关文章:

javascript - 在一次数据库调用中更新插入多个子文档

javascript - 有没有办法在 JavaScript 中将 OpenCV.Mat 转换为数组?

php - 使用自动完成值从 sqlite 获取新值并填充 edittext

ajax - POST 无法连接到 Web 服务

javascript - Kendo AutoComplete + AngularJS + 对象数组

javascript - 从 iframe 打印 pdf 文件

javascript - 使用 javascript 调用具有相同参数值的函数

html - 如何在 css 中创建 3d 丝带框

html - 使用 CSS 显示箭头

javascript - 从另一个 div 获取值,减去,并使用 jQuery 填充另一个 div