Opera 中的 JQuery.Validate 失败

问题描述 投票:0回答:3

如果您使用的是 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"

)并尝试一下?

jquery validation opera
3个回答
11
投票
原来问题出在

{ debug : true }
JQuery.Validate 初始化器的选项。 

删除后,Opera 中一切正常。 感谢 Jörn Zaefferer 帮助我们解决了这个问题!


0
投票
我似乎无法重现这个错误。可以透露更多详情吗?

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

>>> $.browser.opera false

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

这是 WinXP 上的 Opera 9.51。

编辑:在 Opera 上测试编辑。

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


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

© www.soinside.com 2019 - 2024. All rights reserved.