用HTML5的验证使浮动输入标签
TL;DR取代你的JavaScript验证HTML5的验证。这比你想象的要容易,并且给你一吨的标记和样式的控制。试试这个演示:
我们在这里做什么
所以你需要验证的一种形式。你的服务器端验证做正确的事情开始。然后,如果你是一个好的网页设计师,你加入一些客户端验证你的用户得到反馈是否填写表格不正确或。如果你真的是一个好的网页设计师,你甚至可能使瞬时值反馈,这样用户意识到,当它成为一个有效的电子邮件地址,他们进入一个有效的电子邮件地址。
你最喜欢的jQuery库。也许你甚至不够冷静,用普通的JavaScript库。
你添加一些额外的标记。重新风格的一些东西…添加一些JavaScript验证规则。连接到服务器通过Ajax JavaScript。打破你的头靠在键盘上几次,因为你没有做的这几个月,要找新的JavaScript验证库做事情到底怎么了…等等。
你得到的图片。就不好玩了。
如果你可以跳过所有的JavaScript的东西,验证HTML5验证器和CSS属性?
HTML5的表单验证是什么?
粗略的讲:你添加的属性一样要求或类型=“电子邮件”以<输入>田野和你的浏览器没有休息。
去尝试提交表单在这CodePen演示没有内容。然后提交它没有一个有效的电子邮件地址:
正则表达式模式
你可能已经注意到,你可以输入一个电子邮件一样一个@。显然你需要一个真正的电子邮件地址,所以通过指定确切的模式,我们的数据必须匹配,我们可以验证什么进入。让我们确保它符合其一端有一点和两个或三个字符的模式。我们可以这样使用模式属性和正则表达式。
如果你对学习正则表达式,你必须尝试。正则表达式是极其强大的,在每一个类型的节目你会做。
我讨厌在复杂的正则表达式,所以我翻译为“电子邮件regex”(因为我相信这已经被解决了),找到一个经常expressions.info。这是我们的正则表达式在regex101.com(测试您的正则表达式的一个非常有用的资源)。
^ [就]。_ % + + @ [就] +,-。[A-Za-z] { 2 } $
如果你读了一点关于模式你会发现作者排除小写的比赛因为他们期望你用不区分大小写的标志。HTML5的输入模式不接受旗帜以小写字母我们需要添加大写和小写的范围(例如a-za-z)。你可以阅读什么图案的每个部分是在右边面板中做。
为了使我们的验证错误的把其他的东西比“格式错误!“我们可以指定一个头衔一个验证错误的属性,像这样:
现在尝试电子邮件输入在本演示:
别担心,你不会有对每个输入你所写出的疯狂模式。大多数时候你只会想有什么要求,确保它是一个特定的数据类型。例如,超过5个数可能看起来像<输入type=“数”=“5”>所需最小。
记住,不是所有的浏览器都支持各种验证属性。例如,Firefox不支持最大长度。模式有很好的支持虽然,你总是可以复制功能。最大长度可以复制模式=”。{ 3 }”在 哪儿三然而,长期需要。
如果你不能找到一个模式,你的旧的JavaScript库的访问,你可以通过浏览他们的源代码中找到它,因为最终的JavaScript库是完全相同的正则表达式模式为我们匹配。
即时反馈
如果我们不输入会显示一些指示时,它是有效的很好吗?令人高兴的是,有一个:有效对于CSS选择器。也有一个:无效选择器。在本演示中输入你的名字:
你会发现明显的警告,无效的方式出现之前,我们所接触的输入。
你可能会想做这样的事情:无效:不(:空)但它不会工作,因为浏览器是愚蠢的总是把表单元素的空。
我们可以用新的做一些挂羊头卖狗肉占位符所示:在下面的演示显示伪选择器,但浏览器支持为占位符所示:是可怕的,没有一个现代polyfill呢。真倒霉.
现在,我们最好添加一些JavaScript切换类取决于如果输入为空或不。这里的工作演示:
它的华丽
我对这种方法最喜欢的部分是你在你的每一个点完成CSS控制。
通过推进下<输入>我们获得我们相邻同胞选择器空荡荡的。类我们可以创建一个虚假的精美幻灯片占位符的方式尽快输入不再是空的。这里的一个例子:
如果在<输入>冒犯你的情感或不容易,你可以修改JavaScript添加空类的<标签>相反。然后它只是调整CSS一点。这里的一个例子,这样做:
验证类也在<形>所以你真的可以去元素与风格控制螺母。
有没有什么限制,你可以用这种方法。一些想法:
•添加验证图标,淡入/淡出。
•震动输入如果用户unfocuses是无效的。
•昏暗的输入为他们填写正确。
浏览器支持
•在现代浏览器和IE10 +完美。
•IE9不支持验证伪选择器,所以你不会造型,但形式还是功能很好。
可能的解释
有没有办法验证消息的风格。浏览器禁用那些风格的能力。我并不认为这是坏事,因为人们会用这些验证方式。事实上,这可能是为什么浏览器决定削减我们对它们的访问。现在他们都是标准化的。
他们还指出,页面流,所以你不必担心他们将表单元素在自己的外表。
如果你真的需要在验证方式的完全控制,这种方法可能不适合你
牧羊人设计文章推荐:
HTML5和原生应用程序和混合型的应用
新一代网站制作
赢得你的听众使用视频背景