14

如果您使用的是 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")并试一试?

4

3 回答 3

12

原来问题出在

{ debug : true }

JQuery.Validate 初始化程序的选项。删除这个之后,Opera 就可以正常工作了。感谢 Jörn Zaefferer 帮助我们解决这个问题!

哦,这 50 美元将捐赠给 JQuery 项目。:)

于 2008-08-12T21:41:17.363 回答
0

我不在 .NET 上,但我猜 YSOD 意味着未捕获的错误,如果是这种情况,那么单独依赖客户端验证是否有点冒险?如果不是这样,那么捕获的错误可以转换为对 Opera 人群有用的东西——即使它只是一个涂成白色并带有验证抱怨的死亡屏幕......

于 2008-08-12T21:46:43.250 回答
-1

我似乎无法重现此错误。你能提供更多细节吗?

我有伪装成 Firefox 的 Opera 副本,因此应该执行验证:

>>> $.browser.opera 
false

当我进入编辑个人资料页面并输入格式错误的日期时,会出现红色文本并显示“请输入有效日期”。那是 jQuery.Validate 工作,对吧?它只在某些表单/字段上失败吗?

这是 WinXP 上的 Opera 9.51。

编辑:在 Opera 上测试编辑。

编辑:当我注释掉“if ($.browser.opera) return;”时它也有效 我在本地保存的编辑个人资料页面的副本上的行。我真的无法重现这个错误。你的环境是什么样的?(Vista?Opera 插件?)

于 2008-08-12T12:00:24.010 回答