我有一段表单可动态生成并递增它的ID。 类似的东西:
<input type='text' name='fname1' id='fname1'/>
<input type='text' name='lname1' id='lname1'/>
我正在尝试第一次验证表单(之前我从未使用过jQuery验证插件)并且我以表单id“confirm”开始它
$('#confirm').validate({
rules:{
oneoftheinputnameshere:{
required: true
}
}
});
当我验证不改变的输入字段时,上面的情况很好,但是当我不知道它将被生成多少次时,我将如何选择要验证的内容?我查看了其他一些有关此问题的问题,并在每个输入字段中添加了一个类,但我不确定这是否正确或如何实现它。
任何帮助都会很棒
编辑:ids会增加1,所以'fname2','fname3'等等
答案 0 :(得分:0)
您的帖子中似乎缺少相当数量的HTML代码,但您要查找的是jQuery .each()
或.children()
,具体取决于您希望如何处理它。
.each()
可以基于另一个元素(如数组)动态生成(并存储ids的名称),.children()
可以用于迭代表格的元素jQuery .contains()
(是的,他们可以堆叠)。我知道这有点令人困惑,所以花点时间阅读上面的jQuery方法。
答案 1 :(得分:0)
检查以下链接以获取动态验证示例
http://jquery.bassistance.de/validate/demo/dynamic-totals.html
实施例:标记
<textarea style="display:none" id="template">
<div class="row" >
<input name="form{0}" id="form{0}" title="Please enter your username" required >
</div>
</textarea>
<form id="orderform" method="get" action="foo.html">
<div id="orderitems">
</div>
<input class="submit" type="submit" value="Submit"/>
</form>
<button id="add">Add another input to the form</button>
脚本:
<script type="text/javascript">
// only for demo purposes
$.validator.setDefaults({
submitHandler: function() {
alert("submitted!");
}
});
$().ready(function() {
$("#orderform").validate({
errorPlacement: function(error, element) {
error.appendTo( element.parent(".row"));
}
});
var template = jQuery.validator.format($.trim($("#template").val()));
function addRow() {
$(template(i++)).appendTo("#orderitems");
}
var i = 1;
// start with one row
addRow();
// add more rows on click
$("#add").click(addRow);
})
</script>