我有一个要使用jQuery Validation插件进行验证的表单。我目前在使用array(name="inputname[]")输入元素时遇到问题,该元素是用jQuery动态创建的.on()。让我解释一下这个问题:
有一种形式,存在一个名为的输入文本name[]。
有一个按钮可添加更多输入文本,该元素使用.on()执行。我单击了2或3次,因此会有多于1个输入文本。
我单击提交,该窗体是正确验证,但它仅验证第一个创建的数组元素,而不验证另一个元素。
对于完整的代码,我在这里创建了一个jsfiddle:http : //jsfiddle.net/ThE5K/4/
jQuery的:
$(document).ready(function () {
// MODE 1
// With [] or array name <<<< this one is not working
$("#addInput").on('click', function () {
$('#inputs').append($('<input class="comment" name="name[]" />'));
});
/* MODE 2
Without [] or array name <<<< this one is working
var numberIncr = 1;
$("#addInput").on('click', function () {
$('#inputs').append($('<input class="comment" name="name' + numberIncr + '" />'));
numberIncr++;
});
*/
$('form.commentForm').on('submit', function (event) {
$('input.comment').each(function () {
$(this).rules("add", {
required: true
})
});
event.preventDefault();
console.log($('form.commentForm').valid());
})
$('form.commentForm').validate();
});
HTML:
<form class="commentForm">
<div id="inputs"></div>
<input type="submit" />
<span id="addInput">add element</span>
</form>
我在其中创建了两种模式,一种工作模式(不带数组名的动态输入文本)和一种不工作模式(带数组名的动态输入文本)。
我一直在通过那些解决方案,但不幸的是,其中没有一个起作用:
jQuery验证为数组输入添加规则
jQuery Validate不适用于动态内容
jQuery验证动态输入数组
请帮忙。
相关分类