我想在jquery或javascript中获取表单提交事件的响应?
我在jquery中触发了表单的提交事件: -
$(form).submit();
实际上是为了检查响应,我这样做: -
alert('resp=' + $(form).submit());
以下是行动方法: -
public ActionResult SaveProduct(ProductViewModel model)
{
if (ModelState.IsValid)
{
return Json(true);
}
else
{
return Json(false);
}
}
所以它只是返回真或假。 但我在警报中得到低于响应(我触发它): -
[object object]
我想知道,我怎么能得到这样的提交事件响应?
答案 0 :(得分:1)
$( "#target" ).submit(function( event ) {
alert( "Handler for .submit() called." );
event.preventDefault();
});
欲了解更多信息: http://api.jquery.com/submit/
答案 1 :(得分:1)
与许多jQuery函数一样,对.submit()
itself的调用可能只是返回一个jQuery对象。我很惊讶你真的得到了什么。这次调用不是.submit()
导致页面完全加载新内容吗?或者这是否通过AJAX发生,我只是没有在这里看到?
由于服务器端代码只是返回JSON数据,我假设您不想加载页面。通常,对于AJAX调用,我可能只使用jQuery中的.post()
函数。像这样:
$.post('@Url.Action("SaveProduct", "YourControllerName")', $(form).serialize(), function (result) {
// here the "result" variable will contain the response from the server
});
这是服务器端代码(使用Razor语法)和客户端代码的混合体。对Url.Action()
的服务器端调用只是为该操作方法动态创建客户端可用的URL。剩下的就是调用jQuery .post()
函数,传递三个参数:
.serialize()
函数答案 2 :(得分:1)
如果要检查响应,则应使用console.log vs alert,然后在控制台中检查响应。
console.log($(form).submit())
答案 3 :(得分:0)
为此你需要使用jquery.form.js