jQuery“验证不是函数”

时间:2011-07-28 16:23:48

标签: jquery jquery-validate

我正在使用this jQuery validation插件并获得名人:

  

$(“#Form”)。validate不是函数

尝试在Firebug中验证(以及所有其他浏览器中的等效消息)。

这意味着我在加载jquery-1.4.2.jsjquery.validate.js之前尝试调用它。在调用validate()之前,我已经使用Fiddler来显示这些文件正在请求,所以在没有更好的方法的情况下,我只能假设这两个文件已在浏览器中完全加载。 / p>

为了解决这个问题,还有其他我应该看的地方吗?如果首先请求脚本,那么它们也应该按顺序加载?有没有办法找出来?

我目前认为插件中还有其他内容导致此问题(配置等)。我已经搜索了所有,但解决方案似乎并不适用于我。

任何想法在哪里看?

我的jQuery是:

$(document).ready(function () {
    console.log("loaded");
    $("#Form").validate({
        rules: {
            container_0$centre_0$txtFirstName: { required: true }
        }
    });
})

,表格是:

<form method="post" action="/url" id="Form" enctype="multipart/form-data">

 <div class="ctrlholder">
    <label for="firstname">First Name</label>
    <input name="container_0$centre_0$txtFirstName" type="text" id="txtFirstName" class="required" /><em>*</em>
    <div id="errFirstName" class="error" style="display:none;">Please enter your first name</div>
  </div>
</form>

有简化的代码版本。

3 个答案:

答案 0 :(得分:1)

我没有看到.validate()本身就是jQuery的一种方法。它看起来像是一个验证插件的方法。我建议确保正确包含/安装that plug-in,并且在使用插件时,您应该确保使用兼容版本的jQuery。

您可以从this jsFiddle看到jQuery对象上没有属性validate,只包含jQuery。

答案 1 :(得分:1)

jquery.tools.min.js(似乎是this)似乎导致了问题。删除后,我可以照常验证。

我会进一步调查,但我只有脚本的缩小版本,虽然我冒险猜测它是因为它has its own validation,可能导致方法名称重叠。

对于这种边缘案例,这将是一个很好的未来资源。

答案 2 :(得分:0)

我说:

$. validator.setDefaults ({
    submitHandler: function () {alert ('submitted'); } 
}); 

相反:

jQuery.validator.setDefaults ({
    debug: true, 
    success: 'valid' 
});

它对我有用。