当前位置: 首页 > Web前端 > HTML

《至尊版》不掺水,用纯CSS实现超级智能的表单验证

时间:2023-04-02 13:58:58 HTML

作者:陈大鱼头github:KRISACHAN去年写了一篇纯CSS实现表单验证的文章,不久后发表发表了有网友告诉鱼头,他们打算用我的这篇文章在团队内分享。当时听到这个消息后,屏幕前的鱼头咧嘴一笑,但是接下来的一段童鞋让我立马笑不出来。但是因为初始化状态是这样的:希望可以改成这样:只有在输入的时候,输入的内容不对,才显示错误信息。童鞋:“那这个功能能实现吗?”我:“……”既然有童鞋对鱼头这么敬重,打算用鱼头的DEMO做内部分享,只好硬着头皮实现了这个功能。首先我们来看一下最终的效果图:DEMO在线观看地址:https://codepen.io/krischan77...各位读者童鞋们,我们先用鱼头拆分功能实现:HTML先来看一下在HTML的源代码Account:请输入正确的账号
密码:请输入正确的密码密码
这里的HTML标签比较常规,但是我们要注意携带的几个属性:requiredrequired中的required是一个布尔属性,用来告诉浏览器这个是否是必填项。来康康DEMO:

请输入信息

效果如下:兼容性如下:nativestyle体验也不错。模式,然后是模式属性。用于验证输入值是否有效。我们的康康DEMO:

PleaseenterIlovefishhead

提交信息效果如下:兼容性如下:不得不感慨原生组件的能力也是很强的。CSS我们康康CSS的下一部分,源码如下:root{--error-color:red;}.form>input{margin-bottom:10px;}.form>.f-tips{color:var(--错误颜色);显示:无;}输入[类型=“文本”]:无效~输入[类型=“提交”],输入[类型=“密码”]:无效~输入[类型=“提交”]{显示:无;}input[required]:focus:invalid+span{display:inline;}input[required]:empty+span{display:none;}input[required]:invalid:not(:placeholder-shown)+span{display:inline;}我们重点关注以下CSS选择器::invalid和:valid伪类选择器(:valid和:invalid),用于判断匹配有效或无效,
元素。:valid伪类选择器表示一个,其值通过验证,告诉用户他们的输入是有效的。:invalid伪类选择器表示一个,其值未通过验证,告诉用户他们的输入无效。示例如下:输入文字:
输入电话号码:效果如下:兼容性如下::placeholder-shown:placeholder-shown伪类在