2011-06-04 84 views
7

jQuery驗證插件中斷了定義了HTML5類型的元素。HTML5輸入類型kill jQuery驗證

$(document).ready(function(){ 
$("#myform").validate() 
}); 
... 
<form id="myform"> 
<input id="email" email="true" /> 
</form> 
... 

添加HTML5屬性類型=「電子郵件」到輸入,使驗證失敗。我想用type =「email」因爲手機use this attribute to display the proper keyboard layout by default

什麼是最好的方式來實現手機友好的鍵盤+ jQuery驗證庫?

您可以看到問題here的示例。

+1

您希望在移動設備上訪問您的訪問者的百分比是多少?如果它很重要,那麼可能是一個移動版本。否則,看起來你已經發現了驗證插件的限制。 – Sparky 2011-06-04 01:28:19

+0

是的,這是重要的... 100%;) – 2011-06-04 01:41:46

回答

8

如果你願意維護你自己的插件版本(這個補丁很小,從粗略的看來at the code似乎是正確的),你也許可以合併this pull request和主幹。儘管它肯定需要測試)。

您也可以退回到僅使用the HTML5 required字段(可能支持未啓用javascript的客戶端),但請參閱this issue

+0

這是一個很好的解決方案。謝謝! – 2011-06-06 05:06:18

+1

2013年1月13日:只是爲了增加其他人看看這個問題現在已經解決的解決方案:驗證插件現在正確驗證'type =「email」'字段。在輸入此版本時,Validate插件的* 1.11.0pre *正常工作。確保你使用[***最新版本的腳本***](https://github.com/jzaefferer/jquery-validation/blob/master/jquery.validate.js) – 2013-01-14 15:48:28

+1

但仍然沒有工作類型「tel」。我已經做了捐款,我希望他們能夠解決這個問題.. – Revious 2014-12-04 14:14:54

1

該問題已被提交。看到這個錯誤報告: http://plugins.jquery.com/content/html-5-typeemail-prevents-inline-validation-required-email-field

幸運的是,現在有一個工作的jQuery插件這樣的:http://plugins.jquery.com/project/simple_email_validate

希望它能幫助。 ;)

+0

這兩個鏈接都已死亡。 – DaveP 2016-05-05 13:04:46

+0

這是因爲它是從5年前開始的。我們現在有用於此目的的jQuery Validator。 :D:D:D:D:D:D:D – 2016-05-05 13:07:22

+0

感謝您的評論 - 我只是節省了其他人的時間。 – DaveP 2016-05-05 16:12:06