2016-01-20 72 views
1

我知道有很多類似這樣的問題,但我沒有得到確切的解決方案,我在MVC中的情況,所以我再次問。jQuery.validate.js在MVC中爲ajax使用type =「button」時不工作

我是MVC的新手,我使用jQuery AJAX來調用控制器方法插入數據。

AJAX功能。

function btnLoginUser(btnClicked) { 
     var $form = $(btnClicked).parents('form'); 

     $.ajax({ 
      type: "POST", 
      url: "/Accueil/Login", 
      data: $form.serialize(), 
      error: function (xhr, status, error) { 
      }, 
      success: function (response) { 
      } 
     }); 
     return false; 
    } 

我在窗體中的按鈕。

<input type="button" value="Se connecter" class="btn btn-success" onclick="btnLoginUser(this)" /> 

當我用type =「button」這個按鈕時,它會調用ajax,但jQuery驗證停止工作。

但是當我使用type="submit"然後驗證開始,但阿賈克斯停止工作和頁面刷新。按鈕type="submit"

<input type="submit" value="Se connecter" class="btn btn-success" /> 

那麼有沒有什麼辦法可以同時使用驗證和AJAX來插入數據而無需刷新頁面?

任何幫助,將不勝感激。

編輯

JavaScript調用。

$(document).ready(function() { 
     $('#idUser').on('submit', function (e) { 
      if (!e.isDefaultPrevented()) { 
       e.preventDefault(); 
       // Your Ajax code 
       btnInsertUser(this); 

      } 
     }) 
    }); 

而形式中的按鈕是。

<input type="submit" value="S’inscrire" class="btn btn-success" onclick="javascript:return AcceptTermAndcondition();" /> 
+0

使用Ajax該插件的正確方法是把AJAX插件的'submitHandler'回調函數內。 [見文檔:*「**正確的地方**通過Ajax提交表單後驗證。」*](http://jqueryvalidation.org/validate/#submithandler) – Sparky

回答

-1

試一下:

$('#form').on('submit', function(e){ 
    if (!e.isDefaultPrevented()) { 
     e.preventDefault(); 
     // Your Ajax code 
    } 
} 
+0

如果我使用e.preventDefault() ;那麼它解除綁定jQuery.validate()事件,所以它不起作用 –

+0

這就是爲什麼你必須先測試!e.isDefaultPrevented()。 如果驗證失敗,則觸發e.preventDefault()。 如果不是,你可以打電話給阿賈克斯。 –

+0

好吧,我會嘗試並在幾分鐘內回覆 –

相關問題