jQuery 验证插件:无法获取 属性 'setdefaults' 未定义或空引用 IE
jQuery Validation Plugin: Unable to get property 'setdefaults' of undefined or null reference IE
我有一个带有输入字段的基本表单,该表单使用来自 jQuery 验证插件 (http://jqueryvalidation.org/) 的客户端验证。该表单在我们的生产站点上运行良好,但出于某种原因,当我将其插入 Optimizely 测试时,我在所有 IE(FF、Chrome 和 Safari 都很好)中收到以下错误:
Unable to get property 'setDefaults' of undefined or null reference
我的js脚本如下...
jQuery.validator.setDefaults({
debug: false //If true, the form is not submitted and certain errors are displayed on the console
});
jQuery("#myForm").validate({
submitHandler: function(form) {
form.submit();
},
rules: {
//script for rules
},
messages: {
//script for messages
}
});
jQuery().ready(function() {
jQuery("#myForm").validate();
});
有没有人能看看我的语法是否有问题或指出正确的方向?
谢谢
默认情况下,Optimizely 使用 jQuery 版本 1.6.4。确保您没有覆盖 Optimizely 中的 JQuery 设置,并使用低于 1.6.4 的 JQuery 版本或除您的插件被测试只能使用的版本之外的任何版本。
https://help.optimizely.com/hc/en-us/articles/202480860-Project-Settings
您的验证插件仅经过测试可与 JQuery 版本 1.6.4、1.7.2、1.8.3、1.9.1 和 1.11.1 一起使用。
Is anyone able to see if there's something wrong with my syntax
这里的另一个问题是您在同一表单上两次调用 .validate()
方法...
jQuery.validator.setDefaults({
debug: false
});
jQuery("#myForm").validate({ // FIRST CALL
submitHandler: function(form) {
form.submit();
},
rules: {
// script for rules
},
messages: {
// script for messages
}
});
jQuery().ready(function() {
jQuery("#myForm").validate(); // SECOND CALL IS IGNORED
});
.validate()
方法仅用于初始化 表单上的插件,任何后续调用都将被忽略。因此,插件会评估代码中的第一个 .validate()
方法,插件会忽略 .ready()
处理程序中的 .validate()
方法。
您可以简单地将所有内容放入 DOM 就绪处理程序中...
jQuery().ready(function () {
jQuery.validator.setDefaults({
debug: false
});
jQuery("#myForm").validate({ // FIRST & ONLY CALL
// your rules & options
});
});
首先,确保您在加载的文件中引用了 Jquery.datetimepicker.js
。
也许你错过了参考。
我有一个带有输入字段的基本表单,该表单使用来自 jQuery 验证插件 (http://jqueryvalidation.org/) 的客户端验证。该表单在我们的生产站点上运行良好,但出于某种原因,当我将其插入 Optimizely 测试时,我在所有 IE(FF、Chrome 和 Safari 都很好)中收到以下错误:
Unable to get property 'setDefaults' of undefined or null reference
我的js脚本如下...
jQuery.validator.setDefaults({
debug: false //If true, the form is not submitted and certain errors are displayed on the console
});
jQuery("#myForm").validate({
submitHandler: function(form) {
form.submit();
},
rules: {
//script for rules
},
messages: {
//script for messages
}
});
jQuery().ready(function() {
jQuery("#myForm").validate();
});
有没有人能看看我的语法是否有问题或指出正确的方向?
谢谢
默认情况下,Optimizely 使用 jQuery 版本 1.6.4。确保您没有覆盖 Optimizely 中的 JQuery 设置,并使用低于 1.6.4 的 JQuery 版本或除您的插件被测试只能使用的版本之外的任何版本。
https://help.optimizely.com/hc/en-us/articles/202480860-Project-Settings
您的验证插件仅经过测试可与 JQuery 版本 1.6.4、1.7.2、1.8.3、1.9.1 和 1.11.1 一起使用。
Is anyone able to see if there's something wrong with my syntax
这里的另一个问题是您在同一表单上两次调用 .validate()
方法...
jQuery.validator.setDefaults({
debug: false
});
jQuery("#myForm").validate({ // FIRST CALL
submitHandler: function(form) {
form.submit();
},
rules: {
// script for rules
},
messages: {
// script for messages
}
});
jQuery().ready(function() {
jQuery("#myForm").validate(); // SECOND CALL IS IGNORED
});
.validate()
方法仅用于初始化 表单上的插件,任何后续调用都将被忽略。因此,插件会评估代码中的第一个 .validate()
方法,插件会忽略 .ready()
处理程序中的 .validate()
方法。
您可以简单地将所有内容放入 DOM 就绪处理程序中...
jQuery().ready(function () {
jQuery.validator.setDefaults({
debug: false
});
jQuery("#myForm").validate({ // FIRST & ONLY CALL
// your rules & options
});
});
首先,确保您在加载的文件中引用了 Jquery.datetimepicker.js
。
也许你错过了参考。