使用了Layui,原生select的onchange事件失效了。

参考:

layui框架中解决select onchange事件无效的问题_layui select onchange-CSDN博客

layui select 绑定onchange事件失效-阿里云开发者社区

提炼:

layui改造了原声的select组件,所以直接写onchange无效,代之可以使用 lay-filter 属性

就像之前文章提到的:

原生的组件并没有使用(灰色),他们的样式是dispaly:none,取而代之的是下面渲染出来的<dl>

        <dd></dd>

</dl>

给出我的示例代码:

前端:

<form class="layui-form">

    <div class="layui-form-item" id="Three_link">
        <label class="layui-form-label">所在地区:</label>

        <div class="choose">
            <select id="province" lay-filter="province">
                <option value="">省</option>
                <option v-for="item in ProvinceInfos" :value="item.areaId">
                    {{item.areaName}}
                </option>
            </select>
        </div>


        <div class="choose">
            <select id="city" lay-filter="city">
                <option value="">市</option>
                <option v-for="item in CityInfos" :value="item.areaId">
                    {{item.areaName}}
                </option>
            </select>
        </div>

        <div class="choose">
            <select id="town" lay-filter="town">
                <option value="">县/区</option>
                <option v-for="item in TownInfos" :value="item.areaId">
                    {{item.areaName}}
                </option>
            </select>
        </div>
    </div>
</form>

后端:

let form = layui.form
layui.use('form', function () {
    //在表单域中,对指定按钮设置 lay-submit 属性,即意味着点击该按钮时,将触发提交事件
    //表单不要嵌套
    form.on('submit', function () {
        submitAddr()
    })

    //x选择省加载市
    form.on('select(province)', function (data) {
        axios.get("/Area/city", {
            params: {
                parentId: data.value
            }
        }).then(res => {
            if (res.data.code == 200 && res.status == 200) {
                PCT.CityInfos = res.data.data;
                PCT.TownInfos = [];
                form.render('select', 'city');
            }
        })
    })


    //选择市加载县/区
    form.on('select(city)', function (data) {
        let selected = $("#city option:selected")
        axios.get("/Area/town", {
            params: {
                parentId: data.value
            }
        }).then(res => {
            if (res.data.code == 200 && res.status == 200) {
                PCT.TownInfos = res.data.data;
                form.render('select', 'town');
            }
        })
    })
})

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值