JQuery.Validate 在 Opera 中失效

13

如果你正在使用Opera 9.5x,你可能会注意到我们在Stack Overflow这里禁用了客户端JQuery.Validate代码。

function initValidation() {
    if (navigator.userAgent.indexOf("Opera") != -1) return;
    $("#post-text").rules("add", { required: true, minlength: 5 });
}

这是因为它在Opera中生成一个异常!当然,在我们尝试过的其他所有浏览器中都可以工作。我开始非常、非常地讨厌Opera。

这有点令人沮丧,因为如果没有正确的客户端验证,我们的某些请求将会失败。由于我们还没有时间完全添加服务器端消息传递机制来处理数据不完整的情况,所以如果您忘记填写表单上的某些字段,您可能会在Opera上看到比其他浏览器更多的YSOD

任何使用Opera的人想要取消注释那些行(它们在像这样的核心Ask&Answer页面上 - 只需查看源代码并搜索"Opera"),并进行测试吗?

3个回答

11

结果问题出在

{ debug : true }

JQuery.Validate初始化器的选项。 将其移除后,在Opera中一切正常。 感谢Jörn Zaefferer帮助我们找出问题所在!

哦,还有这$50将捐赠给JQuery项目。 :)


0

我似乎无法复现这个错误。你能提供更多细节吗?

我把我的 Opera 复制成了 Firefox 的样子,所以验证应该正在执行:

>>> $.browser.opera 
false

当我进入编辑个人资料页面并输入格式不正确的日期时,红色文本会出现并显示“请输入有效日期”。这是jQuery.Validate在工作吗?它只在某些表单/字段上失败吗?
这是WinXP上的Opera 9.51。
编辑:在Opera上测试编辑。
编辑:当我注释掉我本地保存的编辑个人资料页面副本上的“if ($.browser.opera) return;”行时,它也可以工作。我真的无法重现这个错误。你的环境是什么样子的?(Vista?Opera插件?)

0

我对.NET不是很了解,但我猜YSOD意味着未捕获的错误,如果是这样的话,那么仅依赖客户端验证是否有点冒险呢?如果不是,那么被捕获的错误可以转换为对Opera用户有用的东西 - 即使只是一个白色的死屏幕和验证问题...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接