我正在尝试检索一组复选框值,存储到数组中,然后在我的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
});
如何将数组转换为类似列表的格式?
谢谢!
答案 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变量。