【问题标题】:Jquery form validation plugin, how to select dynamically generated input elements to validate?Jquery表单验证插件,如何选择动态生成的输入元素进行验证?
【发布时间】:2009-11-16 06:01:37
【问题描述】:

我正在使用Jquery表单验证插件在提交之前验证表单中的输入,有一些输入元素被命名为“question1”,“question2”,“question3”,......,它们是动态生成的. 那么如何在 Jquery 插件函数 validate() 中验证这些输入元素呢?我需要一种方法来首先选择它们。

$(document).ready(function() {
    $("#formname").validate({
        rules: {
            title: {
                required: true,
                minlength:40
            },
            content: {
                required: true,
                minlength:100,
                maxlength:2000
            }
        },
        messages: {
        }
    });
});

标题、内容是同一表单中的其他输入元素,它们不是动态生成的,因此它们很容易验证,只需通过它们的名称即可。那么如何验证“question1”,“question2”,“question3”,...,我当然可以这样写:

 question1: {
                required: true,
                minlength:40
            },
      question2: {
                required: true,
                minlength:40
                    },
         question3: {
                required: true,
                minlength:40
            },
         ...

但是,正如我所说,这些输入元素是动态生成的,我无法预测有多少“问题”。那么怎么做呢?

【问题讨论】:

    标签: jquery validation jquery-plugins


    【解决方案1】:

    您必须在每个动态创建的元素上放置一个 class="question" 属性,以便您可以针对它们执行 jQuery 选择器。

    $(".question").validate({  etc...  
    

    【讨论】:

    • 我想引用 $("#formname").validate({ rules:{}}); 函数中的那些输入元素;
    • 那么你需要一个子选择器。我的 jQuery-foo 现在让我失望了,但我明天可以查一下。它类似于 $("Formname question").validate( ..etc
    【解决方案2】:

    我希望我能理解这个问题:

    您可以将 OnChange 处理程序写入每个创建的元素。然后,这将为您调用验证例程。这不是通过将验证绑定到元素而获得的不显眼的方法,但它确实有效。

    JQuery 尝试通过以下方式协助处理动态元素:http://docs.jquery.com/Events/live#typefn

    但 .live 目前不支持更改事件。

    另一个图书馆可能。谷歌四处看看。

    【讨论】:

      猜你喜欢
      • 2016-05-28
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多