簡體   English   中英

如何將復選框數據發送到JSON數組?

[英]How can I send checkboxes data into JSON array?

我是.js的新手,我將從.js復選框形式的答案導出到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數組?

獲取數組的值

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

獲取數組的ID

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

看看這段代碼是否有幫助

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

Comet的回答對我不起作用。 這樣做:

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/

更新與html表單中的復選框關聯的數據庫中的列表的最佳實踐

如何將復選框數據發送到JSON數組?

JQuery:將數組輸入值轉換為字符串優化

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM