2013-08-12 102 views
1

我是新來的.js和我有一個問題,導出答案從.js複選框形式到JSON數組。如何將複選框數據發送到JSON數組?

我的HTML:

<form> 
<input type="checkbox" name="Question1" id="Answer1" value="Answer1" onclick="show_checked()"/><label for="Answer1">Answer 1</label><br/> 
<input type="checkbox" name="Question1" id="Answer2" value="Answer2" onclick="show_checked()"/><label for="Answer2">Answer 2</label><br/> 
<input type="checkbox" name="Question1" id="Answer3" value="Answer3" onclick="show_checked()"/><label for="Answer3">Answer 3</label><br/> 
</form> 

我的javascript:

function set_checked(checked) 
    $('input[name=foo]').attr('checked', checked); 
} 
$(document).ready(function() { 
      $("input[name='Question1']").change(function() { 
       var maxAllowed = 2; 
       var cnt = $("input[name='Question1']:checked").length; 
       if (cnt > maxAllowed) { 
        $(this).prop("checked", ""); 
        alert('Choose max. ' + maxAllowed + ' answers'); 
       } 
      }); 
     }); 

的問題是,我怎麼能發送選中的複選框的ID或值轉換成JSON陣列?

+0

,所選擇的項目將被髮送。 – Ibu

+0

我假設基於您使用jQuery的代碼,或者是使用「$」的一些其他庫? –

+0

是的。我使用jQuery。 – fragon

回答

8

得到的值到一個數組

var array = $("input[name='Question1']:checked").map(function(){ 
    return this.value; 
}).get() 

讓IDS到一個數組

var array = $("input[name='Question1']:checked").map(function(){ 
    return this.id; 
}).get() 
4

看看這段代碼可以幫助

var objArray = []; 
$("input[name='Question1']:checked").each(function (index, elem) { 
    var id = $(this).attr('id'); 
    var val = $(this).val(); 
    var obj = { 
     Id = id, 
     Value = val 
    }; 
    objArray.push(obj); 
}); 
1

彗星的答案沒有工作爲了我。該做的:

var arrCB = {}; 

$("input[name='Question1']:checked").each(
    function(){ 
     var id = this.id; 
     arrCB[id] = (this.checked ? 1 : 0) 
    } 
); 

var text = JSON.stringify(arrCB); 
alert(text); 

資源:

http://blog.kevinchisholm.com/javascript/associative-arrays-in-javascript/

best practice for updating a list in database associated with checkboxes in a html form

How can I send checkboxes data into JSON array?

JQuery: Turn array input values into a string optimization

當您提交表單