Rav*_*Rav 36 html javascript jquery jquery-validate
我已将此 jquery验证插件用于以下表单.
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
<script>
$(document).ready(function(){
$("#commentForm").validate();
});
function addInput() {
var obj = document.getElementById("list").cloneNode(true);
document.getElementById('parent').appendChild(obj);
}
</script>
<form id="commentForm" method="get" action="">
<p id="parent">
<input id="list" class="required" />
</p>
<input class="submit" type="submit" value="Submit"/>
<input type="button" value="add" onClick="addInput()" />
</form>
Run Code Online (Sandbox Code Playgroud)
单击添加按钮时,会动态添加新输入.但是,在提交表单时,只验证第一个输入字段.如何验证动态添加的输入?谢谢...
Ang*_*gel 40
您的输入应具有"名称"属性.您需要动态添加规则,一个选项是在表单提交时添加它们.
这是我测试的解决方案,它的工作原理如下:
<script type="text/javascript">
$(document).ready(function() {
var numberIncr = 1; // used to increment the name for the inputs
function addInput() {
$('#inputs').append($('<input class="comment" name="name'+numberIncr+'" />'));
numberIncr++;
}
$('form.commentForm').on('submit', function(event) {
// adding rules for inputs with class 'comment'
$('input.comment').each(function() {
$(this).rules("add",
{
required: true
})
});
// prevent default submit action
event.preventDefault();
// test if form is valid
if($('form.commentForm').validate().form()) {
console.log("validates");
} else {
console.log("does not validate");
}
})
// set handler for addInput button click
$("#addInput").on('click', addInput);
// initialize the validator
$('form.commentForm').validate();
});
</script>
Run Code Online (Sandbox Code Playgroud)
而html表单部分:
<form class="commentForm" method="get" action="">
<div>
<p id="inputs">
<input class="comment" name="name0" />
</p>
<input class="submit" type="submit" value="Submit" />
<input type="button" value="add" id="addInput" />
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
祝好运!如果它适合你请批准答案!
Rit*_*ieD 40
添加新字段后重置表单验证.
function resetFormValidator(formId) {
$(formId).removeData('validator');
$(formId).removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse(formId);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
添加动态内容后需要重新解析表单以验证内容
$('form').data('validator', null);
$.validator.unobtrusive.parse($('form'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
97335 次 |
| 最近记录: |