layui表單賦值取值


表單賦值 / 取值

語法: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");

第二個參數中的鍵值是表單元素對應的 namevalue

 

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)

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM