前端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中append()與appendto()用法分析
這篇文章主要介紹了jquery中append()與appendto()用法分析,以實(shí)例的形式分析了jquery中append()與appendto()的具體語(yǔ)法與詳細(xì)用法,需要的朋友可以參考下2014-11-11
ASP.NET jQuery 實(shí)例18 通過(guò)使用jQuery validation插件校驗(yàn)DropDownList
這節(jié)我們還可以通過(guò)直接設(shè)置DropDownList屬性來(lái)設(shè)置jQuery validation插件的校驗(yàn)規(guī)則和提示信息2012-02-02
jQuery實(shí)現(xiàn)伸展與合攏panel的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)伸展與合攏panel的方法,可實(shí)現(xiàn)操作div層的平滑收縮與展開(kāi)的功能,涉及jQuery中next、slideUp、slideDown等方法的使用技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-04-04
jquery實(shí)現(xiàn)圖片裁剪思路及實(shí)現(xiàn)
JS,jquery不能實(shí)現(xiàn)圖片的裁剪,只是顯示了一個(gè)假象,在服務(wù)器上用獲得的各個(gè)坐標(biāo)值,以及原始圖片,用JAVA進(jìn)行裁剪2013-08-08
jQuery UI AutoComplete 使用說(shuō)明
在 jQuery UI 的最近更新中增加了自動(dòng)完成控件 AutoComplete,這為我們提供了又一個(gè)強(qiáng)大的開(kāi)發(fā)工具,這里介紹一下這個(gè)控件的使用方式。2011-06-06
jquery $.trim()去除字符串空格的實(shí)現(xiàn)方法【附圖例】
下面小編就為大家?guī)?lái)一篇jquery $.trim()去除字符串空格的實(shí)現(xiàn)方法【附圖例】。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-03-03

