javascript - HTML5 Datalist auto suggest 显示以搜索关键字开头的列表

标签 javascript html

我在我的项目中使用 HTML5 数据列表进行自动建议。默认情况下,HTML5 遵循关键字包含方法而不是开始于 appoarch。或者如果我有一个数据列表的示例一、二、三意味着如果我在搜索框中键入 o,它会同时显示一和二。但我期望的是在自动建议列表中只显示一个。请大家帮我解决这个问题。

<input list="sampleList" >

<datalist id="sampleList">
   <option value="one">
   <option value="two">
   <option value="three">
</datalist>

最佳答案

可能与:HTML datalist: Is there a way to autocomplete based character order? 重复。

Buddhi Madarasinghe 的 JSFiddle Link 来自上述网站。

    <input type="text" list="countries" name="mycountry" id="countryInput" />
<datalist id="countries">
    <option value="India">India</option>
    <option value="United States">United States</option>
    <option value="United Kingdom">United Kingdom</option>
    <option value="Germany">Germany</option>
    <option value="France">France</option>
    <option value="Israel">Israel</option>
</datalist>

您可以借助 JavaScript 实现它。

    var initialArray = [];
    initialArray = $('#countries option');
    $("#countryInput").keyup(function() {
        var inputVal = $('#countryInput').val();
        var first =  [];
        first = $('#countries option');
        if (inputVal != '' && inputVal!= 'undefined') {
            var options = '';
            for (var i = 0; i < first.length; i++) {
                if (first[i].value.toLowerCase().startsWith(inputVal.toLowerCase())) {
                    options += '<option value="' + first[i].value + '" />';
                }
            }
            document.getElementById('countries').innerHTML = options;
        }
        else
        {
            var options = '';
            for (var i = 0; i < initialArray.length; i++) {
                options += '<option value="' + initialArray[i].value + '" />';
            }
            document.getElementById('countries').innerHTML = options;
        }
    });

您甚至可以针对不同的搜索查询修改代码: JSFiddle Link

关于javascript - HTML5 Datalist auto suggest 显示以搜索关键字开头的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42111844/

相关文章:

javascript - reCAPTCHA 导致在 RTL 页面上出现长时间的水平滚动

javascript - Extjs 表单和文本区域无法处理带尖括号的输入 ('<>' )。奇怪的行为,用户界面就死了

javascript - Ajax 循环调用

javascript - servlet 过滤器中的静态资源版本控制(添加额外的 GET 参数)

javascript - 转换图像颜色而不改变其透明背景

javascript - 无法从 thymeleaf 的 javascript 中解析 JSON 对象

javascript - 下拉菜单对齐问题

html - 当 span 设置为内联 block 时,其垂直空间会在包含的 div 中扩展

html - 如何用 HTML 中的图像填充文本?

javascript - 如何在 Angularjs 中将 json 响应显示为代码而不是字符串?