天天看点

你可能不知道的css骚操作 — 表单验证‍♂️

效果图

你可能不知道的css骚操作 — 表单验证‍♂️

原理

表单元素中,有一个

pattern

属性,可以自定义正则表达式(如手机号、邮箱、身份证…);

valid伪类

,可以匹配通过

pattern

验证的元素;

invalid伪类

则相反,可以匹配未通过

pattern

验证的元素;于是就可以随便搞啦,上面的效果图只是做一些简单的效果,更多效果以及限制大家就发挥自己的想象力咯;

html

布局很简单,

input

button

是兄弟节点的关系,

required

属性是必填的意思,也就是输入的内容必须要验证通过;

<section class="container">
  <input type="text" name="tel" placeholder="请输入手机号码" pattern="^1[3456789]\d{9}$" required><br>
  <input type="text" name="smscode" placeholder="请输入验证码" pattern="\d{4}" required><br>
  <button type="submit"></button>
</section>
           

css

这里用的是

scss

预处理器,结构清晰

input {
  // 验证通过时按钮的样式
  &:valid {
    &~button {
      pointer-events: all;
      cursor: pointer;

      &::after {
        content: "提交?"
      }
    }
  }

  // 验证不通过时按钮的样式
  &:invalid {
    &~button {
      pointer-events: none; // 去除点击事件,让按钮无法点击(无法阻止键盘focus再回车触发)

      &::after {
        content: "未通过验证?"
      }
    }
  }
}
           

往期系列

css掩人耳目式海浪动效?,这可能是最简单的实现方式了吧?️

你可能不知道的css骚操作 — switch切换?

html指令式实现tooltip文字提示,纯css实现(无脚本)️

最后

本文到此结束,希望以上内容对你有些许帮助,如若喜欢请记得点个

关注

?

你可能不知道的css骚操作 — 表单验证‍♂️

更多精彩内容尽在微信公众号

「不会写前端」

,将不定时更新最新、实用的前端技巧/技术性文章,欢迎关注 ?

上一篇: 王博士2

继续阅读