3

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

4 回答 4

1
   $( "#target" ).submit(function( event ) {
        alert( "Handler for .submit() called." );
        event.preventDefault();
    });

欲了解更多信息: http ://api.jquery.com/submit/

于 2013-10-28T13:51:27.747 回答
1

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

   console.log($(form).submit())  
于 2014-04-07T05:41:53.737 回答
1

.submit()像许多 jQuery 函数一样,对自身的调用可能只是返回一个 jQuery 对象。我很惊讶你真的得到了什么。这个调用不是.submit()让页面完全加载新内容吗?或者这是通过 AJAX 发生的,我只是在这里没有看到?

由于服务器端代码只是返回 JSON 数据,我假设您不想加载页面。通常对于 AJAX 调用,我可能只使用.post()jQuery 中的函数。像这样的东西:

$.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. 要调用的 URL
  2. 要发送到 URL 的数据,来自使用 jQuery.serialize()函数的表单
  3. 处理来自服务器的响应的函数
于 2013-10-28T13:55:46.323 回答
0

为此,您需要使用 jquery.form.js

于 2013-10-28T13:49:28.367 回答