2009-07-22 71 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 
};