user2392738
user2392738

Reputation: 3

how can i make this jsonArray form?

I want to get this (four keys & values in one object):

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

but this is result :

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

here is my code:

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;
    }
});

Upvotes: 0

Views: 67

Answers (3)

Jaid07
Jaid07

Reputation: 153

You have missed one "=" sign in if condition. try this:

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;
}
});

Upvotes: 0

Mikhail
Mikhail

Reputation: 236

You missed the second equals sign in this expression: if(cntchk = 4){, so instead of comparison there is an assignment. Change this to if(cntchk == 4){

Upvotes: 0

kashipai
kashipai

Reputation: 157

Can you please show us the form as well? This gives a limited scope to answer.

But If i guess right, you have a form wherein you have the following fields sms, email, phone, and then oto, right?

So what you have to do is, instead of doing it for each input, you have to do it once for the four inputs. Meaning that you have to set chkObj['sms'], chkObj['email'], chkObj['phone'], and then chkObj['oto'] and then do chkArray.push(chkObj).

Upvotes: 1

Related Questions