2011-09-21 69 views
0

我很新的MVC3,但我已經學習如何處理自定義驗證和客戶端服務器。但是如果不是在客戶端使用jQuery驗證驗證,我想要使用另一個名爲jquery-validation engine的插件。如何開始?整合jQuery驗證引擎與mvc3

回答

1

嗯,你開始通過關閉不引人注目的驗證:

<appSettings> 
    ... 
    <add key="ClientValidationEnabled" value="false"/> 
</appSettings> 

,並從頁面移除,以jquery.validate.jsjquery.validate-unobtrusive.js腳本的所有引用。然後你閱讀你願意使用的插件的documentation,試試some of the demos,下載插件,將所需的腳本導入到你的頁面,然後開始附加到你的表單元素。不要期待奇蹟。除非您爲自己編寫代碼,否則沒有任何內容會複製客戶端上由數據註釋定義的服務器端驗證規則。

如果保持ClientValidationEnabled參數true在web.config中的HTML輔助將繼續發出HTML-5數據 - *屬性,你可以使用基於服務器的驗證規則動態地定義你的客戶端驗證規則(在相同的方式jquery.validate-unobtrusive.js)。所以你可以寫你自己的jquery.validation-engine-unobtrusive.js文件。

0

讓你的js/css文件全部下載並添加。我們有一個名爲jquery.validationEngine-en.js的文件,其中包含驗證規則。例如

(function($) { 
    $.fn.validationEngineLanguage = function() {}; 
    $.validationEngineLanguage = { 
     debugMode: false, 
     newLang: function() { 
      $.validationEngineLanguage.allRules = { 
      "required":{ 
       "regex":"none", 
       "alertText":"This field is required.", 
       "alertTextCheckboxMultiple":"Please select an option.", 
       "alertTextCheckboxe":"This checkbox is required."} }; 
       }, 
       confirmInput: function(caller) { 
      var confirmBox = $(caller).find('input.confirm_box'); 
      if (confirmBox.is(':checked')) { 
       return false; 
      } else { 
       return true; 
      } 
     } 
      }; 
})(jQuery); 

$(document).ready(function() { 
    $.validationEngineLanguage.newLang(); 
}); 

對於必需的,它顯示在工具提示彈出時,確認爲必填字段失敗的文本。下面的函數是一個自定義驗證函數,它將檢查以確保在提交可以通過之前確認框已被選中。

<input type="checkbox" class="validate[required,custom[confirmInput]]" /> 

或者類似的東西

1

如果你想使用jQuery的驗證引擎來看看Pieter's blog他實現了一個HTML:

您通過向元素的類像這樣使用這些Helper Extension方法在jQuery驗證引擎中使用mvc中的數據註釋。