【发布时间】:2011-05-05 15:04:56
【问题描述】:
我使用 jQuery validate 来验证我正在处理的网站上的一堆表单。
在此站点上,我根据select 选项选择克隆了一些输入。我想验证这些输入,但是当我这样做时,只有第一个得到验证。
我尝试将$('form').validate(); 放在克隆脚本中,其中放置了许多其他脚本(并且可以正常工作),但它仍然只验证第一个。
我该怎么办?
下面是我的克隆脚本,我认为应该在其中放置一个新的validate()。还是什么?
// Clone per number chosen
for (var i = 0; i < childrenCount; i++) {
birthday
.clone()
.attr('name', birthday.attr('name') + count++ - 9)
.appendTo('.childInputs')
.children("input.childDD").attr('id', 'child' + count + 'DD')
.next("input.childMM").attr('id', 'child' + count + 'MM')
.next("input.childYYYY").attr('id', 'child' + count + 'YYYY')
.parent().children('.noChild').html(count);
$(this).parent().next(".linkedToPrev").slideDown('slow');
$("input.yyyy").mask("9999",{placeholder:" "});
}
我不会发布所有代码,因为它非常复杂。如果您不知道可能导致问题的原因,我会的。
【问题讨论】:
-
您通常何时验证输入?表单提交?
-
.attr('name', birthday.attr('name') + count++ - 9)很傻,我们.attr('name', 'birthday[]')并且您的服务器端应该读取它,因为数组也会自动为您分配索引, -
@Chad:是的,我希望它现在也能在提交时进行验证。但它不会验证所有生成的输入,只会验证第一个。你有什么想法吗?
-
提交未验证的“正常”输入后为红色。当我单击生成的并在其外部单击时,它会验证(变为红色)。
标签: jquery jquery-plugins jquery-validate