前端LayUI監(jiān)聽(tīng)事件實(shí)例代碼匯總
一、監(jiān)聽(tīng)單選按鈕事件
點(diǎn)擊資源類型單選按鈕時(shí),請(qǐng)求后臺(tái)接口,把接口返回的內(nèi)容追加到選擇資源下拉框內(nèi)
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
// 監(jiān)聽(tīng) form.on('radio(kindradio)',function (data) { // 清空下拉框內(nèi)容 $('#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>"; }); //把遍歷的數(shù)據(jù)放到select里面 $("#kejian_opt").append(html); }else{ layer.msg(res.message) } //重新刷新了一下下拉框 form.render('select'); } }) })
二、監(jiān)聽(tīng)下拉框事件
HTML
<select name="public_kejian_id" lay-search="" lay-filter="source" lay-verify="required" id="kejian_opt"> </select>
JQ 獲取當(dāng)前選中的value值和對(duì)應(yīng)的文本
// 監(jiān)聽(tīng)下拉框 form.on('select(source)',function (data) { console.log('選中的id:'+data.value) var selectedText = data.elem[data.elem.selectedIndex].text; console.log('選中的文字:' + selectedText); })
附:layui表單提交了多次的兩個(gè)原因
1. js文件引用了多次
使用layui需要引用layui.js,有的會(huì)引用layui.all.js。
如果使用layui默認(rèn)的表單提交方式,且你的上述js文件同時(shí)引用,或者重復(fù)引用,那么就會(huì)導(dǎo)致表單渲染多次,就會(huì)導(dǎo)致表單提交多次的情況。
// layui監(jiān)聽(tīng)提交 form.on('submit(demo1)', function(data){ layer.alert(JSON.stringify(data.field), { title: '最終的提交信息' }) return false; });
引用的時(shí)候,注意不要同時(shí)引用layui.js和layui.all.js。如果自己的頁(yè)面需要引入其他的頁(yè)面,那么也要注意你需要引入的頁(yè)面中是否已經(jīng)引用過(guò)layui.js了,避免重復(fù)引用。
2. 觸發(fā)提交操作的事件出現(xiàn)在<form></form>內(nèi)
如果你是通過(guò)自己實(shí)現(xiàn)觸發(fā)事件來(lái)提交的,那么你觸發(fā)事件的提交按鈕不能再form標(biāo)簽內(nèi)。
例如有如下代碼
<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>
觸發(fā)提交事件的按鈕是在<form>標(biāo)簽內(nèi)部的,所以當(dāng)點(diǎn)擊提交之后,也會(huì)觸發(fā)兩次提交。
將提交按鈕放到<form>標(biāo)簽外就可以防止多次提交了。
總結(jié)
到此這篇關(guān)于前端LayUI監(jiān)聽(tīng)事件的文章就介紹到這了,更多相關(guān)前端LayUI監(jiān)聽(tīng)事件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
jQuery中DOM樹(shù)操作之復(fù)制元素的方法
這篇文章主要介紹了jQuery中DOM樹(shù)操作之復(fù)制元素的方法,實(shí)例分析了DOM樹(shù)復(fù)制元素的使用技巧,需要的朋友可以參考下2015-01-01jQuery中animate動(dòng)畫第二次點(diǎn)擊事件沒(méi)反應(yīng)
這篇文章主要介紹了jQuery中animate動(dòng)畫第二次點(diǎn)擊事件沒(méi)反應(yīng)的解決方法,非常的實(shí)用,有需要的小伙伴可以參考下2015-05-05jquery formValidator插件ajax驗(yàn)證 內(nèi)容不做任何修改再離開(kāi)提示錯(cuò)誤的bug解決方法
query formValidator插件非常好用,但是有一個(gè)嚴(yán)重的Bug,在使用ajax驗(yàn)證的時(shí)候,如果輸入框的內(nèi)容已經(jīng)存在,把鼠標(biāo)放到輸入框,不做任何修改再離開(kāi),則會(huì)提示錯(cuò)誤,很是郁悶2013-01-01jQuery實(shí)現(xiàn)表格隔行及滑動(dòng),點(diǎn)擊時(shí)變色的方法【測(cè)試可用】
這篇文章主要介紹了jQuery實(shí)現(xiàn)表格隔行及滑動(dòng),點(diǎn)擊時(shí)變色的方法,可實(shí)現(xiàn)表格隔行變色以及鼠標(biāo)滑過(guò)與點(diǎn)擊時(shí)變色的功能,涉及jQuery響應(yīng)鼠標(biāo)事件及頁(yè)面元素樣式動(dòng)態(tài)改變的相關(guān)技巧,需要的朋友可以參考下2016-08-08jquery html動(dòng)態(tài)添加的元素綁定事件詳解
下面小編就為大家?guī)?lái)一篇jquery html動(dòng)態(tài)添加的元素綁定事件詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05基于JQuery的日期聯(lián)動(dòng)實(shí)現(xiàn)代碼
基于JQuery的日期聯(lián)動(dòng)實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-02-02Jquery下的26個(gè)實(shí)用小技巧(jQuery tips, tricks & solutions)
前段時(shí)間發(fā)布了Jquery類庫(kù)1.4版本,使用者也越來(lái)越多,為了方便大家對(duì)Jquery的使用,下面列出了一些Jquery使用技巧。2010-03-03jQuery學(xué)習(xí)筆記 獲取jQuery對(duì)象
為了將Web的結(jié)構(gòu)層和表現(xiàn)層、行為層徹底分離,就不應(yīng)該在HTML標(biāo)簽上直接定義樣式或事件等。這意味著要想設(shè)置頁(yè)面中的某個(gè)元素,就需要先把這個(gè)元素選擇出來(lái),選擇器正是解決這個(gè)問(wèn)題的技術(shù)2012-09-09