layui切换select选项事件

本文展示了如何在HTML表单中使用layui框架监听商品选择的改变事件,通过AJAX获取商品详细信息,例如商品明细数量,并实时更新到页面上。此示例涉及到前端与后台的数据交互,以及动态更新DOM元素内容。

说明

我们经常遇到表单上面选择不同的下拉选项需要触发函数去完成一些业务逻辑,比如我这个地方根据所选商品查询它底下明细的数量,并展示。

效果演示

在这里插入图片描述

代码

<!--选择商品-->
<div class="layui-form-item">
    <label class="layui-form-label">商品</label>
    <div class="layui-input-block">
        <select id="goodsId" name="goodsId" lay-verify="required" lay-filter="goodsId">
            <option value="">--选择商品--</option>
        </select>
        <div class="layui-unselect layui-form-select">
            <div class="layui-select-title">
                <input type="text" placeholder="请选择" value="" readonly=""
                       class="layui-input layui-unselect">
                <i class="layui-edge"></i>
            </div>
        </div>
    </div>
</div>
// 监听商品更改事件
form.on('select(goodsId)', function(e) {
    $.ajax({
        type: "GET",
        url: ctx+'goods/kmtj/'+$("#goodsId").val(),
        success: function (result) {
            $('#kmtj').val('总计:'+result.data.total+'张|剩余:'+result.data.left+'张');
        }
    })
})
### 实现 Layui 中基于 Radio 选择动态渲染不同 HTML 元素 为了实现根据 `radio` 的选中状态来动态改变页面中的其他元素,在 Layui 框架下可以通过监听 `radio` 组件的变化事件并执行相应的 JavaScript 或者 jQuery 逻辑来进行操作。 当检测到某个特定选项被选中时,可以利用 JavaScript 动态创建或显示/隐藏已存在的 DOM 节点。下面是一个简单的例子展示如何做到这一点: #### 定义表单结构 首先定义一组带有唯一名称属性的 `radio` 输入框以及用于放置后续生成内容的目标容器。 ```html <form class="layui-form"> <div class="layui-input-block"> <input type="radio" name="elementSelector" value="text" title="Text Input" checked> <input type="radio" name="elementSelector" value="textarea" title="Textarea"> <input type="radio" name="elementSelector" value="select" title="Select List"> </div> <!-- 目标区域 --> <div id="dynamicContent"></div> </form> ``` #### 初始化 Form 模块并绑定 Change 事件 通过调用 `layui.form.on()` 方法为上述 `radio` 集合注册一个变更处理器函数。每当用户切换不同的 `radio` 项时就会触发此回调,并依据当前的选择更新目标区域内所呈现的内容。 ```javascript // 加载所需模块 layui.use(['form'], function(){ var form = layui.form; // 当 radio 发生变化时触发 form.on('radio(elementSelector)', function(data){ let contentDiv = document.getElementById("dynamicContent"); contentDiv.innerHTML = ''; // 清除之前的内容 switch (data.value) { case "text": contentDiv.insertAdjacentHTML( 'beforeend', '<label>Enter some text:</label><br>' + '<input type="text" placeholder="Type here..." />' ); break; case "textarea": contentDiv.insertAdjacentHTML( 'beforeend', '<label>Write something longer:</label><br>' + '<textarea rows="4" cols="50" placeholder="Start typing..."></textarea>' ); break; case "select": contentDiv.insertAdjacentHTML( 'beforeend', '<label>Select an option:</label><br>' + '<select>' + '<option value="">Please choose...</option>' + '<option value="one">Option One</option>' + '<option value="two">Option Two</option>' + '</select>' ); break; } // 更新表单样式以适应新添加的组件 form.render(); }); }); ``` 这段代码展示了如何使用 Layui 来响应用户的交互行为——即选择了哪个 `radio` 后端会相应地调整界面上其它部分的表现形式[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值