我试图从动态构建表单输入创建一个对象文字集合,其中键值对与表单的输入名称和值匹配为"键值"对。
以下BuildDataCollection方法代码确实创建了集合,但它没有正确设置键。它指定迭代器编号而不是预期的键。
var PAS = {
ReportData: {},
SubmitReport: function (ReportName) {
//debugger
this.BuildDataArray();
$.ajax({
type: 'POST',
url: "/Monitor/_PAS_Report?ReportName=" + ReportName,
data: this.ReportData,
})
.success(function (result) {
//get ajax response and display
$('#RprtContainer').html(result);
$('#RprtContainer').show();
})
.error(function (xhr, status) {
console.error(status);
})
},
BuildDataCollection: function () {
debugger
obj = document.getElementById("PASParameterForm");
arr_Input = obj.getElementsByTagName('input');
var arIName ="", arIVal ="";
for (i = 0; i < arr_Input.length; i++) {
arIName = arr_Input[i].name;
arIVal = arr_Input[i].value;
this.ReportData[i] = { arIName:arIVal };
}
}
}
如何让它正常工作?
答案 0 :(得分:0)
一旦我发现它,解决方案很简单,非常明显:
this.ReportData[i] = { arIName:arIval };
到
this.ReportData[arIName] = arIVal ;