如果您使用的是 Opera 9.5x,您可能会注意到我们的客户端 JQuery.Validate 代码在 Stack Overflow 上已被禁用。
function initValidation() {
if (navigator.userAgent.indexOf("Opera") != -1) return;
$("#post-text").rules("add", { required: true, minlength: 5 });
}
那是因为它在 Opera 中产生了异常!当然,它适用于我们尝试过的所有其他浏览器。我开始非常非常讨厌 Opera。
这有点令人失望,因为如果没有适当的客户端验证,我们的一些请求将会失败。当数据不完整时,我们没有时间放入完整的服务器端消息传递,因此,如果您忘记填写表单上的所有字段,您在 Opera 上看到的 YSOD 可能比其他浏览器多得多。
任何 Opera 用户都想取消这些行的注释(它们位于像这样的核心问答页面上——只需查看源代码并搜索"Opera"
)并尝试一下?
{ debug : true }
JQuery.Validate 初始化器的选项。 删除后,Opera 中一切正常。 感谢 Jörn Zaefferer 帮助我们解决了这个问题!
我有伪装成 Firefox 的 Opera 副本,因此验证应该正在执行:
>>> $.browser.opera
false
当我进入编辑个人资料页面并输入格式错误的日期时,会出现红色文本并显示“请输入有效日期”。这就是 jQuery.Validate 的工作原理,对吗?它只在某些表单/字段上失败吗?
这是 WinXP 上的 Opera 9.51。
编辑:在 Opera 上测试编辑。
编辑:当我注释掉“if ($.browser.opera) return;”时,它也有效。我本地保存的编辑个人资料页面副本上的一行。我真的无法重现这个错误。你的环境怎么样? (Vista?Opera 插件?)