【发布时间】:2015-11-24 00:02:56
【问题描述】:
我正在尝试通过模式更新父表单上<span> 字段中的一些文本。为此,我在模式表单上使用 AJAX 调用来检索新用户输入的值。单击“保存”按钮后,模态表单应检索文本框值并将其发送回。
但是我无法将任何值传回。在创建 Javascript 数组的函数中调试时,值存在且正确。但是,一旦我尝试使用 AJAX 调用的 data 属性(例如:data.Address),它就会返回 undefined。
这是我的 AJAX 调用代码:
$.ajax({
type: 'POST',
data:
{
ID: $("#clientID-@Model.Id").val(),
Address1: $("#clientAddress1-@Model.Id").val(),
Address2: $("#clientAddress2-@Model.Id").val(),
City: $("#clientCity-@Model.Id").val(),
Province: $("#clientProvince-@Model.Id").val(),
PostalCode: $("#clientPostalCode-@Model.Id").val(),
PhoneNumber: $("#clientPhoneNumber-@Model.Id").val()
},
success: function (data) {
//$("#Address1-@Model.Id").html(data.Address1);
alert(data); //prints the entire HTML for the form
alert(data.ID); //prints undefined
alert($("#clientID-@Model.Id").val()); //prints the correct value - 2827
alert("Data logged!");
},
error: function (data) {
alert("Error occurred!");
}
});
【问题讨论】:
-
什么是数据???
console.log(data); -
有时使用函数作为 ajax 参数会带来麻烦。尝试将数据加载到变量中,然后使用变量而不是函数进行 ajax 调用。并在成功函数中尝试 console.log(data) 来检查返回的内容。
-
@Skatch 我已更新 OP 以删除其他功能。我不确定如何在 VS 2012 中为 MVC 项目打开控制台窗口。我使用 FF 进行测试,但从未使用它进行调试。我仍然很困惑为什么 3 个警报会打印出如此不同的内容。在第 2 和第 3 中,实际上传递的值是相同的。
-
在 Firefox 中,按 F12。用浏览器开始调试,不要用
alert's 调试 -
"alert(data); //打印表单的整个 HTML" 那么你的服务器没有返回你可以从中获取 ID 的东西。
标签: javascript jquery ajax model-view-controller bootstrap-modal