前端LayUI监听事件实例代码汇总
作者:下页、再停留
在layui中,我们可以通过layui提供的监听方法来对按钮事件进行,监听,下面这篇文章主要给大家介绍了关于前端LayUI监听事件的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
一、监听单选按钮事件
点击资源类型单选按钮时,请求后台接口,把接口返回的内容追加到选择资源下拉框内
HTML
<div class="layui-form-item"> <label class="layui-form-label">资源类型:</label> <div class="layui-input-inline" style="width: 50%"> <input type="radio" name="kind" lay-filter="kindradio" value="1" title="课件"> <input type="radio" name="kind" lay-filter="kindradio" value="2" title="视频"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">选择资源:</label> <div class="layui-input-inline" style="width: 50%"> <select name="public_kejian_id" lay-search="" lay-filter="source" lay-verify="required" id="kejian_opt"> </select> </div> </div>
JQ
// 监听 form.on('radio(kindradio)',function (data) { // 清空下拉框内容 $('#kejian_opt').empty(); var section_id = $('[name="section_id"]').val() console.log(data) $.ajax({ url:'getKejianVideo', type:'POST', dataType:'JSON', data:{kind:data.value,section_id:section_id}, success:function (res) { console.log(res) if (res.code == '200') { if (data.value == '1') { var tag = '课件'; }else if (data.value == '2') { var tag = '视频'; } var html = "<option value=''>--直接选择或搜索选择--</option>"; $(res.data).each(function (v, k) { html += "<option value='" + k.id + "'>【"+tag+"】"+k.filename+"</option>"; }); //把遍历的数据放到select里面 $("#kejian_opt").append(html); }else{ layer.msg(res.message) } //重新刷新了一下下拉框 form.render('select'); } }) })
二、监听下拉框事件
HTML
<select name="public_kejian_id" lay-search="" lay-filter="source" lay-verify="required" id="kejian_opt"> </select>
JQ 获取当前选中的value值和对应的文本
// 监听下拉框 form.on('select(source)',function (data) { console.log('选中的id:'+data.value) var selectedText = data.elem[data.elem.selectedIndex].text; console.log('选中的文字:' + selectedText); })
附:layui表单提交了多次的两个原因
1. js文件引用了多次
使用layui需要引用layui.js,有的会引用layui.all.js。
如果使用layui默认的表单提交方式,且你的上述js文件同时引用,或者重复引用,那么就会导致表单渲染多次,就会导致表单提交多次的情况。
// layui监听提交 form.on('submit(demo1)', function(data){ layer.alert(JSON.stringify(data.field), { title: '最终的提交信息' }) return false; });
引用的时候,注意不要同时引用layui.js和layui.all.js。如果自己的页面需要引入其他的页面,那么也要注意你需要引入的页面中是否已经引用过layui.js了,避免重复引用。
2. 触发提交操作的事件出现在<form></form>内
如果你是通过自己实现触发事件来提交的,那么你触发事件的提交按钮不能再form标签内。
例如有如下代码
<form class="form-horizontal layui-form" role="form" lay-filter="example"> <label for="username" class="col-sm-4 control-label">姓名: <input type="text" name="username" id="username" value="" class="form-control"> </label> <button class="layui-btn btn-info" id="submit">提交</button> </form> <script> $("#submit").click(function () { var username = $("#username").val(); $.ajax(.....); // 省略ajax提交 }); </script>
触发提交事件的按钮是在<form>标签内部的,所以当点击提交之后,也会触发两次提交。
将提交按钮放到<form>标签外就可以防止多次提交了。
总结
到此这篇关于前端LayUI监听事件的文章就介绍到这了,更多相关前端LayUI监听事件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!