2009-07-22 37 views
2

在使用JQuery Validate插件时提交Ajax.Beginform不会停止提交。有没有一种确保Ajax.Beginform不被提交的好方法?jquery validate&ajax.beginform

我也尝试过使用JQuery Forms插件来'ajaxify'我的表单。这是一种享受。但是,我的表单是登录表单,如果用户成功登录,我希望将它们重定向。我通过返回一个JavaScript对象在Ajax.BeginForm中完成了这项工作,但使用JQuery.Form.js的相同代码只是显示Javascript而不是执行它。有没有办法管理这个?

[如下请求,我已经添加一些示例代码]

控制器代码

  if (Request.IsAjaxRequest()) 
      { 
       return Content("/receipt/latest"); 
      } 
      else 
      { 
       return RedirectToAction("latest", "receipt"); 
      } 

我用这个返回字符串到这个js功能: -

JS

  function manageResponse(responseText, statusText) { 
       if (responseText.toString().substr(0, 1) == '/') { 
        window.location = responseText; 
       } 
       else { 
        $("#formResult").text(responseText); 
       } 
      } 

我已经使用这些选项将响应与JQuery Form插件绑定。

  var options = { 
       beforeSubmit: function() { 
        return $('#login').validate().form(); 
       }, 
       success: manageResponse 
      }; 

对我来说,这感觉有点'哈克',但它的工作原理。我在询问是否有更好的方法?

罗布

+0

这可能是解决 2012-02-07 17:11:51

回答

1

它似乎并没有太哈克给我,但他们我不是世界上最优雅的家伙。我想我会做不同的唯一的事情是设置它是这样的:

$('#login').validate(); // setup form to use validation plugin 

var options = { 
    beforeSubmit: function() { 
     return $('#login').valid(); // check form is valid 
    }, 
    success: manageResponse 
};