需求如下圖:想要選取單選方塊3,是單選方塊3下的複選框全選
#如果面板資訊不多的話,可以為每個單選框3添加一個固定的監聽事件
但是實際項目中,不僅僅只有兩個,會有幾十個,這時總不能綁訂定一個lay-filter,加入一個form.on('radio(filter)')事件吧
所以在此寫了一個通用的監聽多個radio的方法:
// 选取“单选框3”,“单选框3”下的所有内容全选 var flagID = document.querySelectorAll("input[title='单选框3']"); var aFlagID = new Array(); for (var j = 0; j < flagID.length; j++) { aFlagID.push(flagID[j].id); } // 监听所有title为“单选框3”的radio // 注意:此时title为“单选框3”的radio的id和lay-filter需要设为一致!!!! for (var i = 0; i < aFlagID.length; i++) { form.on('radio('+aFlagID[i]+')', function(data) { $(data.elem).next().next().children("input").addClass(""+aFlagID[i]+"_other"); $("."+aFlagID[i]+"_other").attr("checked", "checked"); $("."+aFlagID[i]+"_other + div").addClass('layui-form-checked'); element.init(); }); }
此處,是透過id來取得每個radio的lay-filter,將radio的id與lay-filter設定成一樣的;
$(data.elem)就是目前監聽的DOM元素;這裡要注意看瀏覽器已經渲染成功的頁面;
此時選取的是input元素,也就是單選框3,但由於layui將input美化掉了,所以此input沒有顯示;
注意看下圖:此時input下一個元素才是我們看到的「單選框3」
在選取元素的時候一定要找準元素!
此方法有以下限制:
1.需要手動為每個「單選框3」設定id和lay-filter;
2.「單選框3」的id和lay-filter需要一致;
3.取得元素時是透過jQuery方法尋找元素;
4.需要依照不同的頁面佈局變更尋找元素的方式。
推薦:layui使用教學
#以上是layui監聽多個radio事件的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!