2011-08-16 59 views
11

我想爲我的網絡應用程序實現html5表單驗證,但它不能與 safari 5.0.1,iphone3或android2一起使用。是否需要表單輸入屬性,模式或與驗證相關的任何事情都不受這些瀏覽器支持,或者我犯了一些錯誤?Html5表單驗證不與iPhone,安卓或Safari瀏覽器工作

它與mozilla,chrome和opera合作。如果我使用html5表單驗證,那麼我需要編寫代碼作爲後備。使用這個或更老的方式作爲jQuery和普通的JavaScript是一個好主意嗎?如果有任何人有想法,請告訴我。

請檢查該鏈接(我寫了一些代碼),並嘗試在iPhone,Android手機或Safari:

http://24ways.org/examples/have-a-field-day-with-html5-forms/24ways-form.html

+5

你應該開始標記爲答案正確的反應,如果你想你的問題在未來得到回答。人們努力解決你的問題。最少你能做的就是欣賞他們:) – NomadTraveler

回答

16

如果你使用jQuery,您可以在the h5Validate plugin看一看。這增加了表單驗證的跨瀏覽器支持,直到IE6。按照project's website

  • 在13級不同的瀏覽器,IE6定期測試 - IE9,火狐,Chrome的 ,iPhone和Android。

  • 根據1,000個用戶調查,幾個 可用性研究以及數百萬用戶在生產環境中的行爲實施最佳實踐。

支持的平臺:

  • 桌面:IE 9,8,7,6,瀏覽器,Firefox,Safari和Opera。在Windows 7和Mac上測試 。

  • 手機:iPhone,安卓,Palm的WebOS

+1

是的,我看着那個。太棒了。感謝名單。 – prabhat

+1

+1對於h5validate插件建議 – RY35

2

爲了跨瀏覽器儘可能友好,你應該總是期望的代碼,客戶端平臺不會有支持更新的東西,比如HTML5驗證。因此,儘管利用新型瀏覽器的功能非常好,並且可以讓用戶獲得更好的體驗,但記住並非每個人都具有相同的功能仍然很重要。這就是說,你在瀏覽器中進行的任何驗證(使用Javascript或HTML5)對於用戶來說只是一種方便,並且可以節省回撥給服務器的費用。你應該總是在服務器上實現驗證,因爲它很容易繞過客戶端驗證。我最喜歡的開發方式是首先完成服務器端的驗證,然後一旦確定,就添加基於javascript的驗證,然後使用對progressive enhancement的「漸進開發」方法進行基於HTML5的驗證。

+0

感謝這個好主意 – prabhat

+0

@prabhat - 如果給出的答案解決了您的問題,或者是您的問題的最佳答案,請將其標記爲已接受。如果答案有幫助(即使答案不是您接受的答案),請將其投票。 – cdeszaq

4

Firefox和Opera都支持HTML 5和特定形式驗證...

我剛剛花了兩天時間寫一些新的代碼才意識到IE和Safari還沒有實現HTML 5的驗證......

我的選擇是明確的,無論是我重新編碼使用JavaScript(困難,因爲形式是動態創建的),或者告訴大家使用Firefox或Opera,否則驗證不落實......

我的選擇...保持我目前的代碼,並等待其他人趕上...

Firefox和IE10支持其中的一些。

Opera和Chrome都支持它。

Safari也支持它,但表單驗證在默認情況下是禁用的。

更新...只是遇到一個帖子,建議Safari不支持表單驗證,難怪我無法找到反正打開它?

+0

4年後,還沒有形成驗證(wtf safari?) – Frankenmint

0

我在創建過程中遇到了同一個求職申請的問題。 h5Validate插件解決了這個確切的問題。它在插件許多瀏覽器和設備的HTML5驗證孔:

  • 桌面:IE 9,8,7,6,瀏覽器,Firefox,Safari和Opera。在Windows 7和Mac上測試。
  • 移動:在iPhone,Android,Palm的WebOS

如果你曾經使用jQuery的驗證插件,這是非常相似的。將其視爲HTML5表單的擴展。

0

你爲什麼不試試webshim? 我有同樣的問題,現在一切都很酷! 您只需下載庫,然後將js-webshim文件夾放入您的項目中。 包括此代碼

<script src="js-webshim/minified/polyfiller.js"></script> 

<script> 
    webshim.activeLang('en'); 
    webshims.polyfill('forms'); 
    webshims.cfg.no$Switch = true; 
</script> 

我希望這將有助於你以及

相關問題