jQuery 验证不处理由 Ajax 加载的表单
jQuery Validate not working on form loaded by Ajax
我有一个用 Ajax 添加并使用 jQuery 验证的表单。我委托 associate 与 .on() 但这并没有附加到表单。
不确定我可能错过了什么,关于使用动态表单Validate.js的细节很少
$(document).ready(function(){
$("body").on("validate", "#contactForm", function() {
$('#contactForm').validate({
....
}); // <- end '.validate()'
});
});
问题的基本前提是有缺陷的...
$("body").on("validate", ...
There is no such "validate" event as part of jQuery 你可以用 .on()
委托。您只能在加载表单的 HTML 后立即调用 .validate()
方法,这会初始化插件。
您只能 attach/call .validate()
添加到 DOM 中已存在的表单上。也就是说不能委托。
Referring to the documentation for the smoothState plugin,有个叫callback
的选项就是运行"after the new content has been injected into the page".
这是您必须调用 .validate()
方法的地方。
callback : function(url, $container, $content) { // <- fires AFTER page (form) is loaded
$('#contactForm').validate({ // <- initializes the plugin on your form
....
});
}
我有一个用 Ajax 添加并使用 jQuery 验证的表单。我委托 associate 与 .on() 但这并没有附加到表单。
不确定我可能错过了什么,关于使用动态表单Validate.js的细节很少
$(document).ready(function(){
$("body").on("validate", "#contactForm", function() {
$('#contactForm').validate({
....
}); // <- end '.validate()'
});
});
问题的基本前提是有缺陷的...
$("body").on("validate", ...
There is no such "validate" event as part of jQuery 你可以用 .on()
委托。您只能在加载表单的 HTML 后立即调用 .validate()
方法,这会初始化插件。
您只能 attach/call .validate()
添加到 DOM 中已存在的表单上。也就是说不能委托。
Referring to the documentation for the smoothState plugin,有个叫callback
的选项就是运行"after the new content has been injected into the page".
这是您必须调用 .validate()
方法的地方。
callback : function(url, $container, $content) { // <- fires AFTER page (form) is loaded
$('#contactForm').validate({ // <- initializes the plugin on your form
....
});
}