Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

return json from javascript function issue

i am tring to return custom json object from javascript function my code is as below

Fiddle

html

<input type='checkbox' name='chk[]' value='1'>1
<input type='checkbox' name='chk[]' value='2'>2
<input type='text' id='txt' value='' />
<input id='btn' type='button' value='click' />

js

var json = {};

$('#btn').click(function(){
  console.log(getdata());
});
function getdata(){
  $('input:checked').each(function(i){
      json.chk = $(this).val();
      //json.chk.push({"val": $(this).val()}); gives error Uncaught TypeError: Cannot call method 'push' of undefined
  });

  json.txt = document.getElementById("txt").value;

 return json;
}

​ i need result like below

{
  chk: [{val: 1}, {val: 2}],
  txt: 'test'
};
like image 565
Pragnesh Chauhan Avatar asked Nov 08 '12 05:11

Pragnesh Chauhan


1 Answers

You need to define the chk varible in the json object. Since chk is undefined, it doesn't know that it's an array.

var json = {};

$('#btn').click(function(){
    console.log(getdata());
});
function getdata(){

    json.chk = [];
    $('input:checked').each(function(i){
        json.chk.push({ val : $(this).val()});
    });

    json.txt = document.getElementById("txt").value;

    return json;
}
like image 50
Varun Achar Avatar answered Sep 30 '22 01:09

Varun Achar