尝试传入复选框
时,我的.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}}选项?
答案 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();