为什么我的数组以逗号分隔的字符串发布?

时间:2016-03-16 17:46:13

标签: jquery ajax

我有以下情况

$(":checkbox").change(function() {
         CheckBoxes();
         Post();
 });

function CheckBoxes()
{
    var manData = new Array();

    $('input:checked').each(function ()
    {
        if(this.name === 'man') manData.push($(this).val());
    });

    $('#man').val(manData);
}

function Post()
 {

     var postData = {
     'man': $('#man').val()
                };

                var path = "/Home/Index";
                $.ajax({
                    url: path, type: "POST", cache: "false",
                    dataType: "json", contentType: "application/json; charset=utf-8",
                    traditional: true,
                    data: JSON.stringify(postData)
                }).success(function (response) {

                }).error(function (){

                });
            }

导致将数据发布为

{"man":"2,3"}而不是数组

{"man": ["2,3"]}.

我在这里做错了什么?

1 个答案:

答案 0 :(得分:5)

当你这样做时:

$('#man').val(manData);

它将您的数组转换为逗号分隔的字符串。所以当你把它拿回来时,再把它分开:

var postData = {
    'man': $('#man').val().split(",")
};