html 使用datalist项目记录

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>

    <!-- 添加/取消关系 -->
    <div id="relationLayer">
        <div class="relation-wrapper">
            <label>关系名称:</label>
            <input type="text" class="relationName" list="relationNameList">
        </div>
        <datalist id="relationNameList">
        </datalist>
    </div>

    <script src="./jquery.js"></script>
    <script>
        let needSearchRelationName = true;//关系操作模糊查询——关系名称

        // 获取关系操作元素
        let relationNameIpt = document.getElementsByClassName('relationName')[0];//关系名称
        // 关系名称模糊查询
        watchIpt(relationNameIpt, (val) => {
            if (needSearchRelationName) {
                searchRelationData(val);
            }
        })

        // 获取关系名称值
        $('.relationName').change(function () {
            $('#relationNameList').hide();
            const curName = $(`#relationNameList option[value='${this.value}']`).attr('data-id');
            needSearchRelationName = false;
        })

        // 监听输入框
        function watchIpt(elem, callback) {
            let notChinese = true;
            elem.addEventListener('compositionstart', (e) => {
                notChinese = false;
            })

            elem.addEventListener('compositionend', (e) => {
                notChinese = true;
            })

            elem.addEventListener('input', (e) => {
                const curVal = e.target.value.trim();
                setTimeout(() => {
                    if (notChinese) {
                        if (curVal.length > 0) {
                            callback(e.target.value)
                        }
                    }
                })

            })
        }

        // 模糊搜索请求相应列表数据
        function searchRelationData(relationName) {
            $.ajax({
                url: 'requrl',
                type: "POST",
                data: {
                    relationName,
                },
                success: function (res) {
                    if (res.result === 'success') {
                        const { data } = res;
                        if (data.length > 0) {
                            relationNameRender(list);
                        }
                    } else {
                        layer.msg(res.msg);
                    }
                }
            })
        }

        // 关系名称下拉框数据
        function relationNameRender(list) {
            $('#relationNameList').html('');
            let optEle = '';
            list.forEach(item => {
                optEle += `<option value="${item.relation_name}" data-id="${item.relation_name}">`
            })

            $('#relationNameList').append(optEle);
        }

    </script>
</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值