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