如何将复选框数据发送到 JSON 数组?

Posted

技术标签:

【中文标题】如何将复选框数据发送到 JSON 数组?【英文标题】:How can I send checkboxes data into JSON array? 【发布时间】:2013-08-13 11:32:52 【问题描述】:

我是 .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 数组?

【问题讨论】:

当您提交表单时,将发送所选项目。 我假设基于您使用 jQuery 的代码,或者是使用“$”的其他库? 【参考方案1】:

获取数组的值

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()

【讨论】:

【参考方案2】:

看看这段代码有没有帮助

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

【讨论】:

【参考方案3】:

彗星的回答对我不起作用。这样做了:

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

【讨论】:

以上是关于如何将复选框数据发送到 JSON 数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 json 数据从我的 jsp 页面发送到 spring rest 控制器

如何在 LARAVEL_7 中通过迁移发送多个复选框

如何使用 Laravel 和 Ajax 从数据库数组中检查复选框

将 Javascript 数组发送到控制器并在另一个 URL 中呈现视图结果

PHP 如何从 AJAX 调用中发布多个数组/json 值并在同一个 SQL 查询中运行它们?

如何使用 jquery ajax 将选中复选框的值发送到另一个页面