将复选框值数组转换为列表

时间:2013-04-29 16:44:29

标签: vb.net jquery

我正在尝试检索一组复选框值,存储到数组中,然后在我的ajax数据参数中使用该数组。

我从页面上收到错误,指出数据格式不正确。它需要是一个不可数的。

这是我到目前为止所做的:

    var years = new Array();
    $("#years input:checkbox[name=type]:checked").each(function() {
        if (checked == true) {
            years.push($(this).attr('name') + "=" + $(this).val());
        }
    });

    var ajaxData = years;

    $.ajax({
        type: "POST",
        url: url,
        dataType: "json",
        data: ajaxData
    });

如何将数组转换为类似列表的格式?

谢谢!

3 个答案:

答案 0 :(得分:1)

试试这个:

var years = [];

$("#years input:checkbox[name=type]:checked").each(function () {
    years.push({
        name: $(this).attr('name'),
        val: $(this).val()
    });
});

var ajaxData = years;

答案 1 :(得分:1)

使用JSON:

    var years = {
        theYears: []
    };

       var years = new Array();
        $("#years input:checkbox[name=type]:checked").each(function() {
            if (checked == true) {
                theYears.push({
                    "name" : $(this).attr("name"), 
                    "value" : + $(this).val()});
            }
        });


   var ajaxData = theYears;

    $.ajax({
        type: "POST",
        url: url,
        dataType: "json",
        data: ajaxData
    });

答案 2 :(得分:1)

作为评论中提到的tymeJV,您无需检查复选框是否已选中,因为您已选择已选中的复选框,因此请执行以下操作:

var years = new Array();
$("#years input:checkbox[name=type]:checked").each(function() {
   years.push($(this).attr('name') + '=' + $(this).val());
});

你应该给你的数组命名:

var ajaxData = {
    years:years
};
$.ajax({
        type: "POST",
        url: url,
        dataType: "json",
        data: ajaxData
    });

与您的服务器相比,您可以获取包含该数组的名为“years”的post变量。