我在IE7中遇到以下脚本的一些问题:
$.validator.addClassRules({
isemail: {
email: true
},
required: {
required: true
}
});
这在IE8和其他浏览器中完美运行但是我在IE7中遇到以下错误:
Line: 158
Char: 3
Error: Expected ':'
在我的代码中,这一行是:
isemail: {
在jQuery验证插件网站(http://jqueryvalidation.org/jQuery.validator.addClassRules/)上没有提到对此功能缺乏支持,所以我在这里缺少什么?
我使用的jQuery版本是jQuery v1.10.2
。我正在使用的jQuery验证版本是1.11.1。
非常感谢任何帮助。
答案 0 :(得分:6)
引用OP :
“非常感谢任何帮助。”
您的代码:
$.validator.addClassRules({
isemail: {
email: true
},
required: {
required: true
}
});
您编写它的方式,您希望在class="isemail"
元素标记中使用class="required"
和input
。
<input class="isemail" type="text" ...
<input class="required" type="text" ...
HOWEVER ,默认情况下,您已经可以将标准规则放在class
属性 中,而不用 {{1}方法。
.addClassRules()
<input class="email" type="text" ...
<input class="required" type="text" ...
<input class="email required" type="text" ...
方法用于根据标准规则集创建复合规则,并将复合规则指定为新的.addClassRules()
名称。
说明:添加复合类方法 - 对于将常见的规则组合重构为单个
class
非常有用。
文档中的库存示例
对于多个class
名称:
class
或单个jQuery.validator.addClassRules({
myClass: {
required: true,
minlength: 2
},
myClass2: {
required: true,
digits: true,
minlength: 5,
maxlength: 5
}
});
名称:
class
由于您没有向我们展示任何复合规则,因此您根本不需要此方法。默认情况下,规则的名称将用作jQuery.validator.addClassRules('myClass', {
required: true,
minlength: 2
}
});
名称。 (有例外:只能通过class
声明可以使用布尔值声明的规则。)
class
你甚至可以模拟一个复合规则(同样,这是没有 <input class="required" type="text" ...
<input class="email" type="text" ...
)。
.addClassMethod()
引用OP :
“...... [{1]}在IE7中不支持?....没有提到jquery validate插件网站上缺少对此函数的支持,所以有什么我的我在这里失踪了?“
你可能已经发现了一个特定于IE7的错误,但是自usage of IE7 is practically zero以来,我认为我不会期待修复甚至担心它太多。
但是,通过上面的简单建议,您无需使用<input class="required email" type="text" ...
方法,并将继续支持IE7。
修改强>:
如果您无法更改HTML标记,则可以添加到.addClassRules()
的{{3}}。这会将.addClassRules()
分配给已包含class
的每个元素。
.email