jQuery Validator Plug In – 从函数内触发

我在validation加载文档后通过AJAX加载的长格式时遇到问题。 使用标准validation语法,validation器在文档存在之前在文档中查找我的表单,因此给出了一个错误:

$(document).ready(function(){ $("#mainForm").validate(); }); 

firebug响应:

 nothing selected, can't validate, returning nothing 

我试过把$("mainForm").validate(); 在一个函数中然后从窗体调用带有onSubmit事件的函数,但没有运气:

 function validate() { $("mainForm").validate(); }; ---------- 
...

思考?


@Chris的一些额外信息:

我有一个页面,动态创建基于许多不同模块的表单。 用户选择适用于它们的模块,然后表单更新并填写该信息。因此,当用户点击链接加载模块时, loadSection(); 函数被调用。 这就是loadSection(); function看起来像:

 function loadSection(id, div, size, frame) { var url = "loadSection.php?id=" + id + "&size=" + size + "$frame=" + frame; $.get(url, function(data){ $(div).append(data); }); } 

如果我把’$(#mainForm).validate();’ 在该函数的回调中,每次插入新模块时都有可能被调用。 这可能是好的,或者可能是坏的,我不确定如何在同一表单上多次调用validation,即使表单的字段已更改。

思考?

你可能遇到了问题。 如果在document.ready()的DOM中不存在该表单,则不会绑定任何内容。

由于您正在使用JQuery,我假设使用jquery $ .ajax(或类似)函数添加表单。 最直接的解决方案就是添加$("#mainForm").validate(); 到AJAX请求的回调函数。 如果您没有使用JQUery ajax,请发布添加表单的代码,我们可以为您提供进一步的帮助。

您必须根据required为元素指定类定义,以validation表单中的特定元素。 但我猜你没有任何地方,所以它的表现就像那样。

例如,如果您要validation电子邮件:

  

*

选择器"mainform"简单错误不是有效的选择器。 如果是ID,请添加“#”前缀

编辑:另请注意,您有另一个内联validation调用,删除该调用