jQuery "Validation is not a function"



我正在使用这个jQuery验证插件并获得著名的:

$("#")。Validate不是一个函数

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

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

为了解决这个问题,我应该去别的地方看看吗?如果先请求脚本,它们也应该按顺序加载吗?有办法知道吗?

我目前的意见是有其他的东西在插件导致这个(配置等)。我找遍了所有的解决方法,但似乎没有一个适合我。

有什么好主意吗?

我的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>

有简化版本的代码

我不认为.validate()本身就是jQuery的一个方法。它看起来像是一个验证插件的方法。我建议确保插件被正确包含/安装,当使用插件时,你应该确保你使用的是一个兼容的jQuery版本。

你可以从这个jsFiddle中看到,没有属性validate的jQuery对象只包含jQuery

似乎是jquery.tools.min.js(似乎是这个)导致了这个问题。删除后,我可以像往常一样验证。

我将进一步调查,但我只有这个脚本的缩小版本,尽管我冒昧地猜测这是因为它有自己的验证,可能导致方法名称重叠。

我放了:

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

:

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

相关内容

  • 没有找到相关文章

最新更新