我有一个用Ajax添加的表单并使用jQuery Validate。我将同事委托给.on(),但这并没有附在表格上。
不确定我可能错过了什么,并且关于使用动态表单的Validate.js的细节很少
$(document).ready(function(){
$("body").on("validate", "#contactForm", function() {
$('#contactForm').validate({
....
}); // <- end '.validate()'
});
});
答案 0 :(得分:1)
这个问题的基本前提是有缺陷的......
$("body").on("validate", ...
您可以使用.on()
进行委派的 There is no such "validate" event as part of jQuery。您只能在加载表单的HTML后立即调用.validate()
方法,这会初始化插件。
您只能将.validate()
附加/调用到DOM中已存在的表单上。换句话说,它不能被委派。
Referring to the documentation for the smoothState plugin,在将新内容注入页面后,有一个名为callback
的选项“。
这是您必须调用.validate()
方法的地方。
callback : function(url, $container, $content) { // <- fires AFTER page (form) is loaded
$('#contactForm').validate({ // <- initializes the plugin on your form
....
});
}