有人建议最好在页面加载时初始化$('#form').validate({})
函数,而不是点击事件:jquery.form/validate plugin only allow submit if input is changed
我想知道如何为多个动态添加的表单执行此操作,而不将$('#form').validate({})
函数包含在on('click', 'input[type="submit"]',
函数内。
以此代码为例:
var id="some identifier for the specific form that is submitted";
`$('#form'+id).validate({})`
id
?id
该怎么办?因为它是动态创建的,例如,通过AJAX。我一直这样做,但这是不推荐的内容:
$(document.body).on('click', 'input[type="submit"]', function(){
var id=this.id;
$('#form'+id).validate({});
});
想法?
感谢, 添
答案 0 :(得分:4)
如果页面加载时表单根本不存在,那么我不会在提交时初始化.validate()
,而是在创建表单后立即对其进行初始化...
// code that dynamically creates #myNewform, then initialize validate()
$('#myNewform').validate();
(validate()
不应该在提交处理程序中,因为在单击提交按钮之前不会初始化验证。这会在表单验证失败并且必须第二次提交时导致问题。然后第二次在表单上重新初始化插件。有关类似问题,请参阅here,here和here。)
对于页面上的现有form
...
$(document).ready(function(){
$('#myform').validate();
});
或多个form
共享相同的验证选项......
$(document).ready(function(){
('.myform').each(function(){
$(this).validate();
});
});