2013-05-17 61 views
0

我想這(四把鑰匙在一個對象&值):我該如何製作這個jsonArray表單?

[{"sms":"Y","email":"Y","phone":"Y","oto":"Y"},{"sms":"N","email":"N","phone":"N","oto":"N"}] 

但這是結果:

[{"sms":"Y"},{"email":"Y"},{"phone":"Y"},{"oto":"Y"},{"sms":"N"},{"email":"N"},{"phone":"N"},{"oto":"N"}] 

這裏是我的代碼:

var chkObj = {}; 
var chkArray = []; 
var cntchk = 1; 
$("tbody input").each(function(idx){ 
    var Nm = $(this).attr("name"); 
    this.checked ? chkObj[Nm] = 'Y' : chkObj[Nm] = 'N'; 
    cntchk++; 
    if(cntchk = 4){ 
      chkArray.push(chkObj); 
     chkObj = {}; 
     cntchk = 1; 
    } 
}); 
+0

嘗試http://jsfiddle.net/arunpjohny/4nncW/1/ –

回答

0

您錯過了此表達式中的第二個等號: if(cntchk = 4){,所以不是比較而是有一個賦值。將其更改爲if(cntchk == 4){

+0

神..保佑你..我找不到失蹤'='thx的傢伙 – user2392738

1

你能請向我們展示這個表單?這給出了有限的回答範圍。

但是,如果我猜對了,你有一個表單,其中你有以下領域短信,電子郵件,電話,然後oto,對不對?

所以你要做的是,不要爲每個輸入做這件事,你必須爲四個輸入做一次。 這意味着你必須設置chkObj ['sms'],chkObj ['email'],chkObj ['phone'],然後chkObj ['oto'],然後執行chkArray.push(chkObj)。

+0

輸入字段都只需鍵入= '複選框' 40個checkboxs在HTML代碼 – user2392738

+0

THX的anwser :) – user2392738

0

如果有條件,您已經錯過了一個「=」號。 試試這個:

var chkObj = {}; 
var chkArray = []; 
var cntchk = 1; 
$("tbody input").each(function(idx){ 
var Nm = $(this).attr("name"); 
this.checked ? chkObj[Nm] = 'Y' : chkObj[Nm] = 'N'; 
cntchk++; 
if(cntchk **==** 4){ 
     chkArray.push(chkObj); 
    chkObj = {}; 
    cntchk = 1; 
} 
}); 
+0

thx for answer :) – user2392738