表單序列化serializeArray()方法獲取未選中的CheckBox


  serializeArray()方法獲取的表單形式為數組對象 arr=[{name:表格1,value:123},{name:表格2,value:123}]的形式,

但它獲取不到未選中的CheckBox的name和value值,所以,以下方法就是將無法獲取到的CheckBox值獲取到:

 $.fn.serializeJson=function(){  //表單序列化獲取未選中的CheckBox
      var serializeObj={};  
      var temp=this.serializeArray(); 
      var not_checked_object=$('input[type=checkbox]:not(:checked)', this);
      $.each(not_checked_object, function () {
        if (!temp.hasOwnProperty(this.name)){//this指沒選中的一個object
          temp.push({name: this.name, value: ""});
        }
      });
      $(temp).each(function(){  //將有相通name的CheckBox合並到一個數組中
          if(serializeObj[this.name]){  
              if($.isArray(serializeObj[this.name])){  
                  serializeObj[this.name].push(this.value);  
              }else{  
                  serializeObj[this.name]=[serializeObj[this.name],this.value];  
              }  
          }else{  
              serializeObj[this.name]=this.value;   
          }  
      });  
      return serializeObj;  
  };

 調用方式:var formData=$(".js-sys-config").serializeJson();


免責聲明!

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



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