我有一个表单,我想使用jQuery Validation plugin进行验证。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>
我在其中创建了两种模式,一种是工作模式(没有数组名称的动态输入文本),另一种是不工作模式(具有数组名称的动态输入文本)。
我一直在研究这些解决方案,但不幸的是没有一个有效:
请帮忙。