带有动态添加控件的jQuery Validation插件

时间:2011-06-06 18:29:48

标签: jquery jquery-plugins jquery-validate jquery-templates

在ASP.Net中,我使用jQuery.tmpl动态添加控件。

我正在使用$(document).ready() function初始化$("#form1").validate();中的验证程序,我的动态控件有class="required",我在点击事件中调用$("#form1").valid()

页面上的静态控件验证,但动态添加的控件不会。这有什么不对?

此外,动态控件使验证器表现得很奇怪,当我点击不同的控件时显示和隐藏验证消息。

示例:http://jsfiddle.net/wY6xt/2/

3 个答案:

答案 0 :(得分:1)

您是否在动态添加的控件中添加规则?看看这个link。下面给出了这样做的方法。我认为,由于控件是动态添加的,它无法将规则(在您的案例类中)与控件相关联(我不太确定,但我认为值得一试)。

$("#txtEmail_1").rules("add", "required");

HTH

答案 1 :(得分:1)

问题是插件需要验证控件是否具有唯一名称。这里添加的控件都具有相同的名称,因此插件表现得很疯狂。

以下是使用唯一名称修复的示例:http://jsfiddle.net/wY6xt/3/

答案 2 :(得分:0)

我遇到了同样的问题。 由于唯一的名称/ id约束,Jquery验证无法应用于动态添加的动态控件。 我的解决方案是动态控件的特殊类名,并使用类名进行验证。 在您的问题中,您的动态控件的类名称为“required”,因此您可以执行以下操作,

$(.required).each(function(){ $(this).rules('add', {required:true, messages:{required: 'Required Field'}});});

它对我有用。 希望它也可以帮到你。