2011-06-04 88 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