我进入undefined我的console.log(),at console.log(item.ResponseId); 这反过来导致我的$ ajax.done()函数失败,因为该值必须是初始调用的返回值.此外,console.log(msg.ResponseId);正在输出预期的整数.
var rdetail = new Array();
$('.choiceinput').each(function (i, obj) {
rdetail.push({
"ResponseId": 0,
"ResponseDetailVal": $(this).val(),
"QuestioChoicesId": $(this).attr('id')
});
})
$.ajax({
type: "POST",
url: "/Forecaster/userResponse/",
data: data
}).done(function (msg) {
console.log(msg.ResponseId);
for (var item in rdetail) {
item.ResponseId = msg.ResponseId;
console.log(item.ResponseId);
}
console.log("Last: ");
console.log(rdetail);
$.post('/Forecaster/userResponseDetails/',
JSON.stringify(rdetail),
null, 'application/json');
})
Run Code Online (Sandbox Code Playgroud)
当你写for( item in rdetail)时,按键的rdetail分配给item一个接一个.由于键是字符串,因此为其分配属性不会*.
你有意义rdetail[item].ResponseId吗?
*它实际上将原始字符串包装在一个String()对象中,将属性赋给它,然后丢弃它