使用RegEx进行表单验证,以动态添加控件

时间:2013-04-02 13:16:58

标签: jquery asp.net validation jquery-plugins

我正在使用Jquery Validation插件来验证webform。 控件根据控件类型动态加载。对于某些控件,我需要使用正则表达式进行验证。我需要为每个控件动态传递RegEx。 我有以下功能,但如何对需要使用RegEx验证的所有控件进行概括

            $.validator.addMethod(varcharRegEx, function (value, element) {
              return this.optional(element) || /^[A-Za-z0-9\_]+$/i.test(value);
             }, "Invalid entry, must contain only letters, numbers, or underscore.");

第二种方法是在表单末尾将错误消息显示为摘要。 我是Jquery的新手。请帮忙

1 个答案:

答案 0 :(得分:0)

向您的控件添加自定义data属性,并使用您的RegEx填充它。然后,您可以在验证函数中读取该值并应用它。

即。 “装饰”需要使用某些css类进行验证的控件,如:

<input id="control_1" class="to-validate" 
     data-regex="^[A-Za-z0-9\_]+$" 
     data-error-message="Invalid entry, must contain only letters, numbers, or underscore." />

然后在jQuery中将验证器附加到每个:

$(".to-validate").each(function(index, myControl) {

    var regex = $(myControl).data("regex");
    var errorMsg = $(myControl).data("error-message");
    var validatorName = $(myControl).attr("id"); 

    $(myControl).validator.addMethod(validatorName, function(value, element) {
        return this.optional(element) || new RegExp(regex).test(value);
    }, errorMsg);
});

我还没有测试过这段代码,因此您可能需要根据具体需要对其进行一些调整,但我希望这能让您有所了解。