Jquery 在Opera中验证失败

Jquery 在Opera中验证失败,jquery,validation,opera,Jquery,Validation,Opera,如果您使用的是Opera 9.5x,您可能会注意到我们的客户端代码在堆栈溢出时被禁用 function initValidation() { if (navigator.userAgent.indexOf("Opera") != -1) return; $("#post-text").rules("add", { required: true, minlength: 5 }); } 那是因为它在Opera中生成了一个异常!当然,我们尝试过的其他浏览器都可以使用它。我开始非常非常

如果您使用的是Opera 9.5x,您可能会注意到我们的客户端代码在堆栈溢出时被禁用

function initValidation() {
    if (navigator.userAgent.indexOf("Opera") != -1) return;
    $("#post-text").rules("add", { required: true, minlength: 5 });
}
那是因为它在Opera中生成了一个异常!当然,我们尝试过的其他浏览器都可以使用它。我开始非常非常讨厌歌剧了

这有点令人沮丧,因为如果没有适当的客户端验证,我们的一些请求将失败。当数据不完整时,我们没有时间输入完整的服务器端消息,因此如果您忘记填写表单上的所有字段,您在Opera上看到的YSOD可能比其他浏览器多得多


任何Opera站点都想取消对这些行的注释(它们位于像这样的核心问答页面上--只需查看源代码并搜索
“Opera”
)并尝试一下?

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

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

>>> $.browser.opera 
false
当我进入“编辑配置文件”页面并输入格式错误的日期时,会出现红色文本并显示“请输入有效日期”。这就是jQuery。验证工作,对吗?是否仅在某些表单/字段上失败

这是WinXP上的Opera 9.51

编辑:在Opera上测试编辑


编辑:当我注释掉本地保存的编辑配置文件页面副本上的“if($.browser.opera)return;”行时,它也会起作用。我真的无法复制这个错误。你的环境怎么样?(Vista?Opera插件?

我整天都在WinXP上使用Opera 9.51的堆栈溢出功能,没有任何问题。我设置了“mask as Firefox”选项来欺骗jQuery.Validate。我还保存了档案编辑和提问页面的静态副本,并从脚本中手动编辑了Opera检查。在所有情况下,表单验证都对我有效

我没有尝试在现场发布新问题,但我编辑了我的个人资料并发布了这些回复

我通常不使用Opera,但我使用jQuery。我的Opera副本是新安装的,我现在在WindowsXPSP3上(回家后,我会在Mac上测试)

是否有触发异常的特定用例?也许这是一个只在Vista下触发的bug

(有点离题,但我真的应该重新回复,还是应该继续编辑我以前的回复?)


更新:在Opera 9.51/PPC Mac中工作,假装是Firefox,结果问题出在

{ debug : true }
JQuery.Validate初始值设定项的选项删除此项后,Opera中的一切都很顺利。感谢Jörn Zaeffer帮助我们解决了这个问题


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

我不在.NET上,但我猜YSOD意味着未捕获的错误,如果是这样的话,那么仅仅依靠客户端验证不是有点风险吗?如果不是这样,那么被抓住的错误可以转化为对歌剧观众有用的东西——即使它只是一个白色的死亡屏幕,上面写着验证抱怨