input框实现自动补全功能

本文介绍了如何实现输入框自动补全功能。通过原生JavaScript,设置定时器调用接口获取匹配数据,并将结果展示在li元素中。同时讨论了使用autocomplete()方法来达到相同效果,提供了一部分HTML和JS代码示例。
部署运行你感兴趣的模型镜像

需求:输入车架号前几位,自动弹出匹配到的车架号。

方案一:原生js

1. html

注意:关掉autocomplete属性,不然会自动匹配之前输入的内容。

2. js

编写定时器,2秒后调用;

调用接口,查询匹配到的数据append到li;

编写点击事件,自动填充Input框为选中内容;

方案二:使用js autocomplete()方法;

source为查询结果。

附部分代码:

html:

<div class="columns pull-left col-md-1.5"
     style="margin-left: 10px;">
    <input id="inputValue" type="text" class="form-control"
           placeholder="请输入"
           autocomplete="off" onkeyup="delayGetVinList()">
    <ul class="dropdown-menu" id="fuzzyQueryUl"
        style="left: 12%">
    </ul>
</div>

js:

function delayGetVinList() {
    var timer;
    if (timer) {
        window.clearTimeout(timer);
    }
    timer = window.setTimeout(getVinList, 2000);
}
function getVinList() {
    var _modelType = $('#selectType').val();
    if (_modelType != '0') {
        return;
    }
    var _val = $('#inputValue').val();
    if (_val == '') {
        $('#fuzzyQueryUl li').remove();
        $('#fuzzyQueryUl').hide();
        return;
    }

    $
        .ajax({
            type: 'get',
            url: 'xxxx',
            data: {
                vin: $('#inputValue').val()
            },
            async: false,
            success: function (result) {
                $('#fuzzyQueryUl li').remove();
                var _length = result.length;
                var _times = 0;
                var _resulto = result[0];
                if (_length > 0 && _resulto != '') {
                    $('#fuzzyQueryUl').show();
                    if (_length > 10) {
                        _times = 10;
                    } else {
                        _times = _length;
                    }
                    var styleResult = '';
                    for (var i = 0; i < _times; i++) {
                        var _result = result[i] + '';
                        var _li = '<li><a href="#" onclick="fuzzyQueryResultClick(\''
                            + _result + '\')"</a>' + _result + '</li>';
                        $('#fuzzyQueryUl').append(_li);
                    }
                } else {
                    $('#fuzzyQueryUl').hide();
                    return;
                }
            },
            error: function () {
            }
        });
}
function fuzzyQueryResultClick(val) {
    $('#inputValue').val(val);
    $('#fuzzyQueryUl').hide();
    return;
}

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值