2011-10-27 37 views
8

我在我的.net/MVC項目中使用jQuery驗證插件時遇到了一些問題: 驗證通常工作正常,提交時出現問題: 我想要表單不存在任何驗證錯誤時提交,爲此我設置了debug:true;表單沒有通過jQuery驗證提交

但是,當提交按鈕無響應時,即使一切正常,即沒有驗證錯誤,將其設置爲true後,單擊提交按鈕時也不會發生任何事情。如果刪除debug:true,即使存在驗證錯誤,它也會提交表單。 我想要解決這個問題,中間的方式,例如: 點擊提交時,如果有錯誤,它不會提交表格並顯示錯誤 如果沒有錯誤,那麼它只是簡單地提交它。

幫助PLZ ..謝謝!

<script type="text/javascript"> 
     $(document).ready(function() { 
$("#productSubmit").validate({ 
    debug : true, rules : { 
    prdctttle : { 
     maxlength : 50, 
     required : true, 
     onlyChars : true } 
    , prdctdscrptn : { 
     maxlength : 250, 
     required : true, 
     onlyChars : true } 
    } 
    , messages : { 
    } 
    } 
); 
} 
); 
$.validator.addMethod('onlyChars', function (value) { 
return /^[a-zA-Z ,-!]+$/.test(value); }, 'Please enter a valid name with only alphabets'); 
    $("#productSubmit").validate({ 
    submitHandler : function(form) { 
    if ($(form).valid()) form.submit(); return false; // prevent normal form posting 
    } 
    } 
); 
</script> 

回答

11

改變你的最後一行,以檢查的形式是有效的提交前:

$("#productSubmit").validate({ 
    submitHandler: function(form) {   
          if ($(form).valid()) 
           form.submit(); 
          return false; // prevent normal form posting 
        } 
}); 

編輯:我忘了添加「返回false;」用於停止表單正常提交(所以只有在驗證通過時纔會發生)。

+0

我改變了你的代碼的列表行,但現在整個驗證腳本已停止工作..當我點擊提交而不輸入nethng其jst刷新和正確填寫所有信息後提交時。瀏覽器給出「這個網頁不可用」錯誤 – Maven

+0

@Maven Darn,我有一種感覺可能會發生。嘗試更新我的代碼。 – GregL

+0

@DGregL,仍然面臨着一些we behavior的行爲,現在如果我嘗試提交一個空的表單,它會給出'這個字段是必需的'很好的驗證錯誤,但是在我填寫表單並嘗試提交提交按鈕之後就變得沒有反應。加上它沒有像以前那樣重新檢查其值的變化..:s – Maven

2

GregL的答案大部分是正確的。

什麼,最終得到了這個對我來說工作正常也是加:

onsubmit: false 

最終代碼:

$("#productSubmit").validate({ 
onsubmit: false, 
submitHandler: function(form) { 
    if ($(form).valid()) 
    { 
     form.submit(); 
    } 
    return false; // prevent normal form posting 
} 
}); 

這將覆蓋默認提交的行爲,並處理了最後的驗證檢查和提交在submitHandler中。