語法:form.val('filter', object);
用於給指定表單集合的元素賦值和取值。如果 object 參數存在,則為賦值;如果 object 參數不存在,則為取值。
注:其中「取值」功能為 layui 2.5.5 開始新增
//給表單賦值 form.val("formTest", { //formTest 即 class="layui-form" 所在元素屬性 lay-filter="" 對應的值 "username": "賢心" // "name": "value" ,"sex": "女" ,"auth": 3 ,"check[write]": true ,"open": false ,"desc": "我愛layui" }); //獲取表單區域所有值 var data1 = form.val("formTest");
第二個參數中的鍵值是表單元素對應的 name 和 value。
layui存在對checkbox賦值的時候,同名多個checkbox進行取值賦值時不正確的問題。
取值只能取到最后一個;
賦值也是會賦值到第一個上;
所以這里需要我們自己進行處理,可以參考資料:https://fly.layui.com/jie/44071/
文章標題:layui form.val針對checkbox多選賦值
================
提交表單時,自己在 form.on("submit(form_verify)", function (data) {函數中進行干預,把值拼起來
debugger
console.log(data);
//獲取選中的checkbox,將值拼起來 var arr_box = []; $('input[type="checkbox"][name="FitProCode"]:checked').each(function () { arr_box.push($(this).val()); }); var FitProCode = arr_box.join(','); data.field.FitProCode = FitProCode;
賦值時,再次進行干預。
將后台的值進行分割變為數組,獲取頁面checkbox進行遍歷,如果checkbox的值包含在數組中則選中,否則設置為不選中(這一點很重要,防止layui賦值錯誤導致的干擾)
網友修改的源碼:
var a = t(r + '[lay-filter="' + e + '"]'); a.each(function (e, a) { var n = t(this); layui.each(i, function (e, t) { //https://fly.layui.com/jie/44071/ 修改2019-11-07 // var i, a = n.find('[name="' + e + '"]'); var a = n.find('[name="' + e + '"]'); if(a.length > 1){ a.each(function (index,item) { if(item.type==='checkbox'){ t.find(function(value,index,arr){ if(value==item.value){ item.checked =true; } }); }else if(item.type==="radio"){ layui.each(i, function(e, t) { var i, a = n.find('[name="' + e + '"]'); a[0] && (i = a[0].type, "radio" === i ? a.each(function() { this.value == t && (this.checked = !0) }) : a.val(t)) }) } }) }else{ a.val(t); } }) }), f.render(null, e)