过帐值形成一个复选框数组

Post values form an array of checkboxes

本文关键字:一个 复选框 数组      更新时间:2023-09-26

几个小时以来,我一直在尝试从一组同名的复选框中获取数据。

<input type="checkbox" name="node"/>
var selectedValues = [];
             $(document.getElementsByName("node")).each(function () {
            selectedValues.push($(this).checked);
           });
            $.ajax({
                url: "/Summary/Test",
                type: "POST",
                data: selectedValues,
                traditional: true                
            });
public void Test(string [] nodes)
        {
        }

我在这里做错了什么?我不明白它为什么跳过那条线。

如果你想收集一个复选框值的数组,你可以使用mep方法:

var selectedValues = $('[name=node]:checked').map(function() {
    return this.value;
}).get();

假设您使用的是jQuery(?)。

或者在简单的javascript中,它几乎是一样的:

var selectedValues = [],
    nodes = document.querySelectorAll('[name=node]');
Array.prototype.slice.call(nodes).forEach(function(el) {
    if (el.checked) {
        selectedValues.push(el.value);
    }
});

AJAX:

$.ajax({
    url: "/Summary/Test",
    type: "POST",
    data: {nodes: selectedValues},
    traditional: true             
});

您不能将所有复选框命名为相同的名称,只会提交最后一个值。将每个更改为:

<input type="checkbox" name="node[]" />

这将创建一个选定值的数组。