Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用RegEx对动态添加的控件进行表单验证_Jquery_Asp.net_Validation_Jquery Plugins - Fatal编程技术网

Jquery 使用RegEx对动态添加的控件进行表单验证

Jquery 使用RegEx对动态添加的控件进行表单验证,jquery,asp.net,validation,jquery-plugins,Jquery,Asp.net,Validation,Jquery Plugins,我正在使用Jquery验证插件来验证webform。 根据控件类型动态加载控件。对于某些控件,我需要使用正则表达式进行验证。我需要为每个控件动态传递正则表达式。 我有以下函数,但如何将其推广到需要使用正则表达式验证的所有控件 $.validator.addMethod(varcharRegEx, function (value, element) { return this.optional(element) || /^[A-Za-z0-9\_

我正在使用Jquery验证插件来验证webform。 根据控件类型动态加载控件。对于某些控件,我需要使用正则表达式进行验证。我需要为每个控件动态传递正则表达式。 我有以下函数,但如何将其推广到需要使用正则表达式验证的所有控件

            $.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的新手。请帮助

为控件添加自定义的
数据
属性,并用正则表达式填充它。然后可以在验证函数中读取该值并应用它

例如,“装饰”需要使用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." />

我尚未测试此代码,因此您可能需要根据您的具体需要对其进行一些调整,但我希望这能给您一个想法。

要附加到您选择的元素,只需添加一个选择器。对于不同的控件,我有不同的正则表达式进行验证。我需要在运行时动态添加正则表达式。感谢您的帮助。您所说的验证功能是指plugin@Floremin
myControl
index
应该是什么?
。每个函数(index,myControl)
基本上是一个
for
循环,它通过一个包含所有html元素的数组,使用类
来验证
索引
是循环的当前索引,
myControl
是数组中的当前html元素。查看此处了解更多信息:
$(".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);
});