我有一个带有输入的表单,其名称如下所示:
<input type="text" name="answer[0]" />
当我执行ajax发布并序列化数据表单时,这些工作正常。现在我试图将一个动态对象传递给jQuery ajax数据,如果它要序列化表单,它将模仿它获得的结构。这是我正在尝试的代码:
function sliderCalc(){
var step = jQuery('[name="step"]').val();
var max = jQuery('[name="max"]').val();
var min = jQuery('[name="min"]').val();
var count = (max - min) / step;
var sliderData = {};
for(i=0; i<=count; i++){
var value = min + (step * i);
sliderData.answers[i] = value; // key => value created here
}
return sliderData;
}
我收到了这个错误:
未捕获的TypeError:无法设置未定义的属性“0”
有没有人有这方面的好解决方案?
答案 0 :(得分:1)
首先需要创建答案属性来分配数组元素:
sliderData.answers = new Array();
答案 1 :(得分:0)
这是创建sliderData
var sliderData = { answers: [] };
for(i = 0; i <= count; i++) {
var value = min + (step * i);
sliderData.answers[i] = value;
}
完整代码:
function sliderCalc() {
var
step = jQuery('[name="step"]').val(),
max = jQuery('[name="max"]').val(),
min = jQuery('[name="min"]').val(),
count = (max - min) / step,
sliderData = {
answers: []
},
value = 0;
for (i = 0; i <= count; i++) {
value = min + (step * i);
sliderData.answers[i] = value; // key => value created here
}
return sliderData;
}