jQuery .ajax()仅POST复选框:选中

时间:2014-03-21 13:38:47

标签: javascript jquery ajax checkbox

尝试传入复选框

时,我的.ajax()函数出错了

以下是代码:

if(typeof($post) !== 'undefined'){
    var $fname = $($post).attr('name').toString();
    var data = {$fname : []};
    alert($post);
    alert($fname);
    $($post + ":checked").each(function() {
        data[$fname].push($(this).val());
    });
}else{
    var data = null;    
}

我在firebug中遇到的错误是:data[$fname].push($(this).val()); is undefined

$post只是传递给函数的类名..在这种情况下它是.del-checked

警报成功提醒我班级名称和复选框名称......在这种情况下是del[]

如何才能将其传递到data的{​​{1}}选项?

3 个答案:

答案 0 :(得分:3)

因为在创建新对象时无法将变量用作键

var data = {$fname : []};

和做

是一回事
var data = {"$fname" : []};

您需要创建对象并使用括号添加键

var data = {};
data[$fname] = [];

答案 1 :(得分:2)

您不能将变量用作键,除非使用括号表示法

if (typeof($post) !== 'undefined'){

    var $fname = $($post).attr('name');
    var data = {};

    data[$fname] = [];

    $($post).filter(":checked").each(function() {
        data[$fname].push( this.value );
    });

}else{

    var data = null;    

}

答案 2 :(得分:0)

怎么样:

var data = $($fname).serialize();