2012-04-04 122 views
0

我的問題是使用Jquery驗證我的表單。我的驗證僅適用於validate函數,但後來我添加了submit選項,驗證沒有發生。我想驗證我的表單,然後執行提交。Jquery驗證不起作用。 Jquery - Javascript

$(document).ready(function() { 
    $('#ReqCreateForm').validate({ 
     invalidHandler: function (e, validator) { 
      var errors = validator.numberOfInvalids(); 
      if (errors) { 
       var message = errors == 1 
       ? 'Missing 1 field' 
       : 'Missing fields'; 
       $("div.error span").html(message); 
       $("div.error").show(); 
      } else { 
       $("div.error").hide(); 
      } 
     }, 
     onkeyup: false, 
     highlight: function (element) { 
      $(element).addClass('error'); 
     }, unhighlight: function (element) { 
      $(element).removeClass('error'); 
     } 
    }); 

    $('#ReqCreateForm').submit(function() { 
     $.ajax({ 
      url: this.action, 
      type: this.method, 
      data: $(this).serialize(), 
      success: function (result) { 
       alert("All Great!"); 
      }, 
      error: function (jqXhr, textStatus, errorThrown) { 
       alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')"); 
      } 
     }); 
     return false; 
    }); 
}); 

謝謝先進。

解決方案:

的解決方案是非常簡單的。在$.ajax之前,向我的提交選項添加了以下代碼。

if (!$(this).valid()) { 
     return false; 
    } 

回答

1

你必須調用有效的功能提交按鈕的點擊處理程序如下:

if($('#ReqCreateForm').valid()) 
{ 
    //then do your thing 
} 
+0

你的答案顯示了我的方式。謝謝。 – 2012-04-04 19:05:41

0

我用this插件submiting使用Ajax的形式。它有一個名爲onbeforesubmit的事件,您可以在這裏毫無問題地調用驗證。也許你想嘗試一下。在你的情況下,你需要捕捉事件befor提交數據到ajax調用,以驗證它(如果你不想使用我建議的插件)

+1

感謝您的回答。我找到了一個簡單的方法來做到這一點。乾杯。 – 2012-04-04 19:04:57