0

我正在使用 Jquery 验证插件来验证网络表单。控件根据控件类型动态加载。对于某些控件,我需要使用正则表达式进行验证。我需要为每个控件动态传递正则表达式。我有以下功能,但是如何将它概括为需要使用 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 的新手。请帮忙

4

1 回答 1

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);
});

我没有测试过这段代码,所以你可能需要根据你的确切需要对其进行一些调整,但我希望这能给你一个想法。

于 2013-04-02T14:27:19.040 回答