jQuery Validator Plug In - 在函数内触发

时间:2012-02-29 18:08:42

标签: javascript jquery validation

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

$(document).ready(function(){
   $("#mainForm").validate();
});
firebug回复:

nothing selected, can't validate, returning nothing

我尝试将$("mainForm").validate();放在一个函数中,然后使用表单中的onSubmit事件调用该函数,但没有运气:

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

----------

<form id="mainForm" onSubmit="validate();">
   ...
</form>

思想?


@Chris的其他一些信息:

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

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();'在该函数的回调中,每次插入新模块时都有可能被调用。这可能是好的,或者可能是坏的,我不确定如何在同一表单上多次调用验证,即使表单的字段已经改变。

思想?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

例如,如果您要验证电子邮件:

   <p>
     <label for="cemail">E-Mail</label>
     <em>*</em><input id="cemail" name="email" size="25"  class="required email" />
   </p>

答案 2 :(得分:0)

选择器"mainform"中的简单错误不是有效的选择器。添加&#34;#&#34;如果是ID,则为前缀

编辑:还要注意你有另一个内联验证调用,删除那个