将jquery验证引擎与mvc3集成

时间:2011-09-21 21:39:10

标签: jquery asp.net-mvc-3 jquery-plugins

我对MVC3很新,但我已经学习了如何处理自定义验证和客户端服务器。但是如果不是在客户端使用jquery-validate进行验证,我想使用另一个名为jquery-validation engine的插件,会发生什么。怎么开始?

3 个答案:

答案 0 :(得分:1)

嗯,首先关闭不引人注目的验证:

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

并从您的网页中删除对jquery.validate.jsjquery.validate-unobtrusive.js脚本的所有引用。然后,您阅读了您愿意使用的插件的documentation,尝试some of the demos,下载插件,将所需的脚本导入到您的页面,然后开始附加到表单元素。不要指望奇迹。除非您自己编写代码,否则没有任何内容可以复制客户端上数据注释定义的服务器端验证规则。

如果您在web.config中将ClientValidationEnabled参数保留到true,则Html帮助程序将继续发出HTML-5 data- *属性,您可以使用这些属性动态定义基于客户端验证规则在服务器验证规则上(与jquery.validate-unobtrusive.js相同的方式)。因此,您可以编写自己的jquery.validation-engine-unobtrusive.js文件。

答案 1 :(得分:1)

如果你想使用jquery-validation引擎,请查看Pieter's blog他实现了一个HTML Helper Extension方法,以便使用jquery-validation引擎在mvc中使用数据注释。

答案 2 :(得分: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();
});

对于required,它会显示在必填字段的验证失败时在工具提示中弹出的文本。下面的函数是一个自定义验证函数,它将检查以确保在提交之前检查确认框。

通过向元素中添加类似的类来使用它们:

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

或类似的东西