1. 程式人生 > >表單序列化serializeArray()方法獲取未選中的CheckBox

表單序列化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();