用CSS怎样实现表单验证,需要注意哪些?
Admin 2022-02-12 群英技术资讯 1715 次浏览
这篇文章给大家分享的是用CSS怎样实现表单验证的方法。在实际的项目中,表单验证是个很常见的需求,例如登录注册这些都会使用到表单验证。这里我们主要看如何纯CSS实现,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
表单验证一般我们的实现思路都是JS监听input框的输入内容,判断用户输入内容,从而以此来决定下一步的操作。
例如这样:(以下例子来自优秀的开源UI库,element)
<el-form :model="numberValidateForm" ref="numberValidateForm" label-width="100px" class="demo-ruleForm">
<el-form-item
label="年龄"
prop="age"
:rules="[
{ required: true, message: '年龄不能为空'},
{ type: 'number', message: '年龄必须为数字值'}
]"
>
<el-input type="age" v-model.number="numberValidateForm.age" autocomplete="off"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('numberValidateForm')">提交</el-button>
<el-button @click="resetForm('numberValidateForm')">重置</el-button>
</el-form-item>
</el-form>
<script>
export default {
data() {
return {
numberValidateForm: {
age: ''
}
};
},
methods: {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert('submit!');
} else {
console.log('error submit!!');
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
}
}
}
</script>
以上就是我们常规的表达验证了,基本就都是用JS来完成的,那么我们能不能用CSS来实现呢?答案是可以的。这里先上DEMO
CSS实现表单验证
上面的表单验证就完全是由CSS来实现的,核心属性就是 CSS Level 4 的 Validity 。思路就是利用 :valid 跟 :invalid 可以对 <input> 的 value 进行判断的特性。
这里是全部代码
/*
* css
*/
:root {
--error-color: red;
}
.form > input {
margin-bottom: 10px;
}
.form > .f-tips {
color: var(--error-color);
display: none;
}
input[type="text"]:invalid ~ input[type="submit"],
input[type="password"]:invalid ~ input[type="submit"] {
display: none;
}
input[required]:invalid + span {
display: inline;
}
/*
* html
*/
<form class="form" id="form" method="get" action="/api/form">
账号:
<input data-title="账号" pattern="[\w]{6,10}" name="account" type="text" required />
<span class="f-tips">请输入正确的账号</span>
<br />
密码:
<input data-title="密码" pattern="[\w]{6,10}" name="password" type="password" required />
<span class="f-tips">请输入正确的密码</span>
<br />
<input name="button" type="submit" value="提交" />
</form>
效果截图
使用到的知识点
1. HTML5 里 <input> 的新属性: pattern
MDN的解释:
检查控件值的正则表达式.。pattern必须匹配整个值,而不仅仅是某些子集.。使用title属性来描述帮助用户的模式.。当类型属性的值为text, search, tel, url 或 email时,此属性适用,否则将被忽略。(兼容ie10+)
备注:
如果 pattern 里的验证规则不合法,例如多了长度校验内多了空格,也是会在控制台报错的,详情如下:
<input data-title="账号" pattern="/[\w]{6, 10}/" name="account" type="text" required />
CSS 与 JS 里的验证规则不一样,以下写法是会无效的,核心校验规则需要用 [] 包起来(目前从测试的几个例子是这样,具体详情还需要翻查资料,如果有大佬知道更具体的信息,请告知,谢谢!)
<input data-title="账号" pattern="/\w{6,10}/" name="account" type="text" required />
2. CSS Level 4 选择器 的新属性: invalid
关于用CSS怎样实现表单验证就介绍到这,上述示例具有一定的借鉴价值,感兴趣的朋友可以参考。希望大家阅读完这篇文章能有所收获。最后,想要了解更多表单验证的内容,大家可以关注群英网络其它相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
浏览器对CSS样式的支持程度、分析结果和识别CSS的优先级,可以根据这些的特征写出不同的CSS样式代码。IE6可以识别下划线和星号*,IE7可以识别星号*,不能识别下划线_。
今天给大家分享的是怎样用CSS做一个产品定价价格表的内容,也就是一个带有产品基本参数信息和价格的表,这种效果的好处就是可以一目了然了解到多个产品信息及价格,下文是实现效果及代码,感兴趣的朋友可以参考一下,那么接下来跟随小编一起看看吧。
本篇文章主要讲述了CSS实现图片替换的技巧,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。
通过本文,你可以学到: 如何利用 filter: drop-shadow() 对元素的部分内容添加单重及多重阴影,以及利用多重阴影实现 Neon 效果 HTML 元素配合 filter: drop-shadow() 以及 SV
本篇文章介绍了关于html5 embed标签的loop属性的使用方法详情,还有embed标签的属性使用总结,接下来让我们一起来看这篇文章吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008