【问题标题】:jQuery Validation plugin with dynamically added controls带有动态添加控件的 jQuery 验证插件
【发布时间】:2011-09-09 12:40:12
【问题描述】:

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

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

页面上的静态控件会生效,但动态添加的控件不会。这里有什么问题?

此外,动态控件使验证器行为怪异,在我单击不同控件时显示和隐藏验证消息。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    HTH

    【讨论】:

    • 这可能行得通,但我希望避免这种情况。我在一些非常老的帖子中看到有一个 .refresh() 方法,但它已被删除
    • 这个docs.jquery.com/Plugins/Validation/… 带有括号和点以及多种形式的字段有两个陷阱。 HTH
    • 我认为这不适用。控件没有名称,只有一种形式。
    • 那么这可能是个问题 :-)....因为它说“输入元素需要 name 属性,没有它验证插件就无法工作。”
    • 是的,我在您发帖后想到了这一点。我尝试添加名称,但似乎没有任何效果。
    【解决方案2】:

    问题在于插件要求被验证的控件具有唯一的名称。这里添加的控件都具有相同的名称,所以插件表现得很疯狂。

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

    【讨论】:

      【解决方案3】:

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

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

      它对我有用。 希望对你也有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-07
        • 1970-01-01
        • 2010-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多