簡體   English   中英

Opera 中的 JQuery.Validate 失敗

[英]JQuery.Validate failure in Opera

如果您使用的是 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 上看到比其他瀏覽器更多的 YSOD

任何 Opera-ites 都想取消注釋這些行(它們位於像這樣的核心問答頁面上——只需查看源代碼並搜索"Opera" )並試一試?

原來問題出在

{ debug : true }

JQuery.Validate 初始值設定項的選項。 移除這個之后,Opera 中的事情就可以正常工作了。 感謝 Jörn Zaefferer 幫助我們解決這個問題!

哦,這 50 美元將捐贈給 JQuery 項目。 :)

我似乎無法重現此錯誤。 你能提供更多細節嗎?

我有偽裝成 Firefox 的 Opera 副本,因此應該執行驗證:

>>> $.browser.opera 
false

當我轉到編輯個人資料頁面並輸入格式錯誤的日期時,會出現紅色文本並顯示“請輸入有效日期”。 那是 jQuery.Validate 工作,對吧? 它是否僅在某些表單/字段上失敗?

這是 WinXP 上的 Opera 9.51。

編輯:在 Opera 上測試編輯。

編輯:當我注釋掉“if ($.browser.opera) return;”時它也有效; 我在本地保存的編輯配置文件頁面的副本上的行。 我真的無法重現這個錯誤。 你的環境是什么樣的? (Vista?Opera 插件?)

我一整天都在 WinXP 上使用 Stack Overflow 和 Opera 9.51,沒有任何問題。 我設置了“mask as Firefox”選項來欺騙 jQuery.Validate 工作。 我還保存了配置文件編輯和問題詢問頁面的靜態副本,並從腳本中手動編輯了對 Opera 的檢查。 在所有情況下,表單驗證都對我有用。

我沒有嘗試在實時網站上發布新問題,但我已經編輯了我的個人資料並發布了這些回復。

我通常不使用 Opera,但我確實使用 jQuery。 我的 Opera 副本是全新安裝的,我使用的是 Windows XP SP3(回家后,我將在 Mac 上進行測試)。

是否有觸發異常的特定用例? 也許這是一個只在Vista下觸發的錯誤?

(有點跑題了,但是我真的適合做一個新的回復,還是我應該繼續編輯我以前的回復?)

更新:適用於 Opera 9.51/PPC Mac 偽裝成 Firefox

我不是在 .NET 上,但我猜 YSOD 意味着未捕獲的錯誤,如果是這種情況,那么僅依賴客戶端驗證是不是有點冒險? 如果沒有,那么捕獲的錯誤可以轉換為對 Opera 人群有用的東西 - 即使它只是一個塗有驗證抱怨的白色死亡屏幕......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM