如何在javascript / jquery中获取表单提交事件的响应?

时间:2013-10-28 13:45:59

标签: jquery asp.net-mvc-4 response form-submit

我想在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]

我想知道,我怎么能得到这样的提交事件响应?

4 个答案:

答案 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()函数,传递三个参数:

  1. 要致电的网址
  2. 要使用jQuery的.serialize()函数
  3. 发送到网址的数据
  4. 处理来自服务器的响应的功能

答案 2 :(得分:1)

如果要检查响应,则应使用console.log vs alert,然后在控制台中检查响应。

   console.log($(form).submit())  

答案 3 :(得分:0)

为此你需要使用jquery.form.js