jquery: Uncaught TypeError: Illegal invocation
jquery: Uncaught TypeError: Illegal invocation
当我尝试将我的表单提交到服务器端代码的操作时遇到问题,如下所示:
[ValidateAntiForgeryToken]
public async Task<ActionResult> DoRegister(UserRegistrationViewModel model)
{
// Some code here
}
表单也包含 Html.AntiForgeryToken(),所以这不是问题。 jQuery 代码如下所示:
$('form').submit(function (event) {
event.preventDefault();
if ($(this).valid()) {
StartLoading();
var formdata = new FormData($(this).get(0));
$.post("/User/DoRegister",formdata, function (data) {
$(".registerLoader").fadeOut("fast");
if (data.statusCode == 200) {
window.location.href = "/Plans";
}
else if (data.statusCode == 100) {
$("body").html(data.View);
}
});
}
return false;
});
当我尝试提交表单时出现以下错误:
jquery: Uncaught TypeError: Illegal invocation
我在这里做错了什么?有人可以帮我吗?
问题是您传递的是 HTML 元素而不是它的值。您可以使用 serializeArray
var formdata = $("form").serializeArray();
The .serializeArray() method creates a JavaScript array of objects, ready to be encoded as a JSON string. It operates on a jQuery collection of forms and/or form controls.
当我尝试将我的表单提交到服务器端代码的操作时遇到问题,如下所示:
[ValidateAntiForgeryToken]
public async Task<ActionResult> DoRegister(UserRegistrationViewModel model)
{
// Some code here
}
表单也包含 Html.AntiForgeryToken(),所以这不是问题。 jQuery 代码如下所示:
$('form').submit(function (event) {
event.preventDefault();
if ($(this).valid()) {
StartLoading();
var formdata = new FormData($(this).get(0));
$.post("/User/DoRegister",formdata, function (data) {
$(".registerLoader").fadeOut("fast");
if (data.statusCode == 200) {
window.location.href = "/Plans";
}
else if (data.statusCode == 100) {
$("body").html(data.View);
}
});
}
return false;
});
当我尝试提交表单时出现以下错误:
jquery: Uncaught TypeError: Illegal invocation
我在这里做错了什么?有人可以帮我吗?
问题是您传递的是 HTML 元素而不是它的值。您可以使用 serializeArray
var formdata = $("form").serializeArray();
The .serializeArray() method creates a JavaScript array of objects, ready to be encoded as a JSON string. It operates on a jQuery collection of forms and/or form controls.