vue 表单验证实例
1.注册
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--<script src="src/vue.min.js"></script>
<script src="src/vue-validator.min.js"></script>-->
<script src="https://unpkg.com/vue@1.0.26/dist/vue.min.js"></script>
<script src="https://unpkg.com/vue-validator@2.1.7/dist/vue-validator.min.js"></script>
<style>
.red {
color: red;
}
.btn{
display: inline-block;
padding: 10px;
background: orange;
color: #FFF;
cursor: pointer;
}
.btn:hover{
background: orangered;
}
</style>
</head>
<body id="app"> <validator name="validatorMethod">
<div class="username">
<label for="">用户名:</label>
<input type="text" v-model="username" initial="off" v-validate:username="['username']" placeholder="请输入用户名">
<p class="red" v-show="$validatorMethod.username.noempty">用户名不能为空</p>
<p class="red" v-show="$validatorMethod.username.username">由数字、26个英文字母或下划线和中文组成的字符串</p>
</div>
<div class="password">
<label for="">密码:</label>
<input type="password" v-model="password" initial="off" v-validate:password="['integer']" placeholder="请输入密码">
<p class="red" v-if="$validatorMethod.password.integer">只能是数字</p>
</div>
<div class="password">
<label for="">确认密码:</label>
<input type="password" v-model="newpassword" initial="off" v-validate:newpassword="{match:matchPassword}" placeholder="请输入确认密码">
<p class="red" v-if="$validatorMethod.newpassword.match">确认密码和密码不一致</p>
</div>
<div><a @click="loginMethods" class="btn">登录</a></div>
</validator> </body>
<script>
var vue = new Vue({
el: '#app',
data: {
comment:"",
username: "",
password: "",
newpassword:"",
matchPassword:false
},
validators: {
noempty:function(val){
var reg = /^\s*$/g, isFlag = true;
if(val == "" || reg.test(val)){
isFlag = false;
}
return isFlag;
},
username: function (val) {
return /^[A-Za-z0-9_\-\u4e00-\u9fa5]{1,10}$/.test(val);
},
integer: function (val) {
return /^[1-9]\d*$/.test(val);
},
match:function (val,result) {
return result;
}
},
methods:{
loginMethods:function () {
var self = this;
/**
* 验证目标表单元素。
* true:验证所有
*/
self.$validate(true,function () {
/*如果所有条件都是false*/
if(!self.$validatorMethod.invalid){
alert("登录成功");
}
})
}
},
computed:{
matchPassword:function () {
return this.password == this.newpassword
}
}
})
</script>
</html>
2.同时验证多个情况,也可以把验证码方法写在html 中(个人不建议使用)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--<script src="src/vue.min.js"></script>
<script src="src/vue-validator.min.js"></script>-->
<script src="https://unpkg.com/vue@1.0.26/dist/vue.min.js"></script>
<script src="https://unpkg.com/vue-validator@2.1.7/dist/vue-validator.min.js"></script>
<style>
.red {
color: red;
}
.btn{
display: inline-block;
padding: 10px;
background: orange;
color: #FFF;
cursor: pointer;
}
.btn:hover{
background: orangered;
}
</style>
</head>
<body id="app"> <validator name="validatorMethod">
<div class="username">
<label for="">用户名:</label>
<!-- 或者这么写-->
<!-- <input type="text" v-model="username" initial="off" v-validate:username="{noempty:true,username:true}" placeholder="请输入用户名">-->
<input type="text" v-model="username" initial="off" v-validate:username="['noempty','username']" placeholder="请输入用户名">
<p class="red" v-show="$validatorMethod.username.noempty">用户名不能为空</p>
<p class="red" v-show="$validatorMethod.username.username">由数字、26个英文字母或下划线和中文组成的字符串</p>
</div>
<div class="password">
<label for="">密码:</label>
<input type="password" v-model="password" initial="off" v-validate:password="{minlength:6,maxlength:20,pattern:'/^\d{6,20}$/'}" placeholder="请输入密码">
<p class="red" v-if="$validatorMethod.password.minlength">密码最低6位数</p>
<p class="red" v-if="$validatorMethod.password.maxlength">密码最高20位数</p>
<p class="red" v-if="$validatorMethod.password.pattern">只能是数字</p>
</div>
<div><a @click="loginMethods" class="btn">登录</a></div>
</validator> </body>
<script>
var vue = new Vue({
el: '#app',
data: {
comment:"",
username: "",
password: "",
newpassword:""
},
validators: {
noempty:function(val){
var reg = /^\s*$/g, isFlag = true;
if(val == "" || reg.test(val)){
isFlag = false;
}
return isFlag;
},
username: function (val) {
return /^[A-Za-z0-9_\-\u4e00-\u9fa5]{1,10}$/.test(val);
},
integer: function (val) {
return /^[1-9]\d*$/.test(val);
}
},
methods:{
loginMethods:function () {
var self = this;
/**
* 验证目标表单元素。
* true:验证所有
*/
self.$validate(true,function () {
/*如果所有条件都是false*/
if(!self.$validatorMethod.invalid){
alert("登录成功");
}
})
}
}
})
</script>
</html>
3.提交时验证所有表单:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--<script src="src/vue.min.js"></script>
<script src="src/vue-validator.min.js"></script>-->
<script src="https://unpkg.com/vue@1.0.26/dist/vue.min.js"></script>
<script src="https://unpkg.com/vue-validator@2.1.7/dist/vue-validator.min.js"></script>
<style>
.red {
color: red;
}
.btn{
display: inline-block;
padding: 10px;
background: orange;
color: #FFF;
cursor: pointer;
}
.btn:hover{
background: orangered;
}
</style>
</head>
<body id="app"> <validator name="validatorMethod"> <div class="username">
<label for="">用户名:</label>
<input type="text" v-model="username" initial="off" v-validate:username="['username']" placeholder="请输入用户名">
<p class="red" v-if="$validatorMethod.username.username">由数字、26个英文字母或下划线和中文组成的字符串</p>
</div>
<div class="password">
<label for="">密码:</label>
<input type="password" v-model="password" initial="off" v-validate:password="['integer']" placeholder="请输入密码">
<p class="red" v-if="$validatorMethod.password.integer">只能是数字</p>
</div>
<div><a @click="loginMethods" class="btn">登录</a></div>
</validator> </body>
<script>
var vue = new Vue({
el: '#app',
data: {
username: "",
password: ""
},
validators: {
username: function (val) {
return /^[A-Za-z0-9_\-\u4e00-\u9fa5]{1,10}$/.test(val);
},
integer: function (val) {
return /^[1-9]\d*$/.test(val);
}
},
methods:{
loginMethods:function () {
var self = this;
/**
* 验证目标表单元素。
* true:验证所有
*/
self.$validate(true,function () {
/*如果所有条件都是false*/
if(!self.$validatorMethod.invalid){
alert("登录成功");
}
})
}
}
})
</script>
</html>
4.提交时指定表单验证:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--<script src="src/vue.min.js"></script>
<script src="src/vue-validator.min.js"></script>-->
<script src="https://unpkg.com/vue@1.0.26/dist/vue.min.js"></script>
<script src="https://unpkg.com/vue-validator@2.1.7/dist/vue-validator.min.js"></script>
<style>
.red {
color: red;
}
.btn{
display: inline-block;
padding: 10px;
background: orange;
color: #FFF;
cursor: pointer;
}
.btn:hover{
background: orangered;
}
</style>
</head>
<body id="app"> <validator name="validatorMethod"> <div class="username">
<label for="">用户名:</label>
<input type="text" v-model="username" initial="off" v-validate:username="['username']" placeholder="请输入用户名">
<p class="red" v-if="$validatorMethod.username.username">由数字、26个英文字母或下划线和中文组成的字符串</p>
</div>
<div class="password">
<label for="">密码:</label>
<input type="password" v-model="password" placeholder="请输入密码">
<p class="red" v-if="$validatorMethod.password.integer">只能是数字</p>
</div>
<div><a @click="loginMethods" class="btn">登录</a></div>
</validator> </body>
<script>
var vue = new Vue({
el: '#app',
data: {
username: "",
password: ""
},
validators: {
username: function (val) {
return /^[A-Za-z0-9_\-\u4e00-\u9fa5]{1,10}$/.test(val);
},
integer: function (val) {
return /^[1-9]\d*$/.test(val);
}
},
methods:{
loginMethods:function () {
var self = this;
/**
* 验证[username]表单元素。
*/
self.$validate('username',function () {
/*如果所有条件都是false*/
if(!self.$validatorMethod.username.username){
alert("登录成功");
}
})
}
}
})
</script>
</html>
5.v-model 是对象类型的参数提交时验证所有表单 :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--<script src="src/vue.min.js"></script>-->
<!--<script src="src/vue-validator.min.js"></script>-->
<script src="https://unpkg.com/vue@1.0.26/dist/vue.min.js"></script>
<script src="https://unpkg.com/vue-validator@2.1.7/dist/vue-validator.min.js"></script>
<style>
.red {
color: red;
}
.btn{
display: inline-block;
padding: 10px;
background: orange;
color: #FFF;
cursor: pointer;
}
.btn:hover{
background: orangered;
}
</style>
</head>
<body id="app"> <validator name="validatorMethod"> <div class="username">
<label for="">用户名:</label>
<input type="text" v-model="items.username" initial="off" v-validate:username="['username']" placeholder="请输入用户名">
<p class="red" v-if="$validatorMethod.username.username">由数字、26个英文字母或下划线和中文组成的字符串</p>
</div>
<div class="password">
<label for="">密码:</label>
<input type="password" v-model="items.password" initial="off" v-validate:password="['integer']" placeholder="请输入密码">
<p class="red" v-if="$validatorMethod.password.integer">只能是数字</p>
</div>
<div><a @click="loginMethods" class="btn">登录</a></div>
</validator> </body>
<script>
var vue = new Vue({
el: '#app',
data: {
items:{
username: "",
password: ""
}
},
validators: {
username: function (val) {
return /^[A-Za-z0-9_\-\u4e00-\u9fa5]{1,10}$/.test(val);
},
integer: function (val) {
return /^[1-9]\d*$/.test(val);
}
},
methods:{
loginMethods:function () {
var self = this;
/**
* 验证目标表单元素。
* true:验证所有
*/
self.$validate(true,function () {
/*如果所有条件都是false*/
if(!self.$validatorMethod.invalid){
alert("登录成功");
}
})
}
}
})
</script>
</html>
6.v-model 参数命名是驼峰式提交时验证所有表单:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--<script src="src/vue.min.js"></script>-->
<!--<script src="src/vue-validator.min.js"></script>-->
<script src="https://unpkg.com/vue@1.0.26/dist/vue.min.js"></script>
<script src="https://unpkg.com/vue-validator@2.1.7/dist/vue-validator.min.js"></script>
<style>
.red {
color: red;
}
.btn{
display: inline-block;
padding: 10px;
background: orange;
color: #FFF;
cursor: pointer;
}
.btn:hover{
background: orangered;
}
</style>
</head>
<body id="app"> <validator name="validatorMethod"> <div class="username">
<label for="">用户名:</label>
<input type="text" v-model="items.userName" initial="off" v-validate:user-name="['username']" placeholder="请输入用户名">
<p class="red" v-if="$validatorMethod.userName.username">由数字、26个英文字母或下划线和中文组成的字符串</p>
</div>
<div class="password">
<label for="">密码:</label>
<input type="password" v-model="items.passWord" initial="off" v-validate:pass-word="['integer']" placeholder="请输入密码">
<p class="red" v-if="$validatorMethod.passWord.integer">只能是数字</p>
</div>
<div><a @click="loginMethods" class="btn">登录</a></div>
</validator> </body>
<script>
var vue = new Vue({
el: '#app',
data: {
items:{
userName: "",
passWord: ""
}
},
validators: {
username: function (val) {
return /^[A-Za-z0-9_\-\u4e00-\u9fa5]{1,10}$/.test(val);
},
integer: function (val) {
return /^[1-9]\d*$/.test(val);
}
},
methods:{
loginMethods:function () {
var self = this;
/**
* 验证目标表单元素。
* true:验证所有
*/
self.$validate(true,function () {
/*如果所有条件都是false*/
if(!self.$validatorMethod.invalid){
alert("登录成功");
}
})
}
}
})
</script>
</html>
.
vue 表单验证实例的更多相关文章
- vue表单验证--veevalidate使用教程
vue表单验证----vee-validate使用教程 官网:https://baianat.github.io/vee-validate/ 一.安装 npm install vee-validate ...
- Bootstrap+PHP表单验证实例
简单实用的Bootstrap+PHP表单验证实例,非常适合初学者及js不熟悉者,还有ajax远程验证 js验证表单 1 $(document).ready(function() { 2 $('#def ...
- jQuery-easyui和validate表单验证实例
jQuery EasyUI 表单 - 表单验证插件validatebox 使用时需要向页面引入两个css文件如下: <link rel="stylesheet" href=& ...
- jquery-4 完整表单验证实例
jquery-4 完整表单验证实例 一.总结 一句话总结:在form的jquery对象中返回false即可终止表单提交. 1.验证的显示错误消息如何布局? 开始时隐藏,出现错误后显示 10 .erro ...
- 写一个简单易用可扩展vue表单验证插件(vue-validate-easy)
写一个vue表单验证插件(vue-validate-easy) 需求 目标:简单易用可扩展 如何简单 开发者要做的 写了一个表单,指定一个name,指定其验证规则. 调用提交表单方法,可以获取验证成功 ...
- HTML5 web Form表单验证实例
HTML5 web Form 的开发实例! index.html <!DOCTYPE html> <html> <head> <meta charset=&q ...
- vue表单验证:vee-validate中文提示
官方文档:https://baianat.github.io/vee-validate/guide/ vee-validate可用于vue项目中进行表单验证,使用方法在官方API上都可以查到: 使用过 ...
- Vue表单验证插件的制作过程
一.表单验证模块的构成 任何表单验证模块都是由 配置――校验――报错――取值 这几部分构成的. 配置: 配置规则 和配置报错,以及优先级 校验: 有在 change 事件校验, 在点击提交按钮的时候校 ...
- angular表单验证实例----可用的代码
前段时间,公司做一个单页面,就是一个表单验证,早开始在菜鸟教程上关注了angular,所以下派上用场了 angular里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ...
随机推荐
- python 多进程并发与多线程并发
本文对python支持的几种并发方式进行简单的总结. Python支持的并发分为多线程并发与多进程并发(异步IO本文不涉及).概念上来说,多进程并发即运行多个独立的程序,优势在于并发处理的任务都由操作 ...
- cmake 查找头文件和库文件顺序
cmake会先到*_DIR里指定.cmake文件里去找找不到了才会到/usr里去找 所以要小心cmake给你找的文件,如果在一台电脑里装了不止一个版本库.
- Python 进阶 之 闭包变量
在闭包内访问外部变量的方法有两种: 1:变量前加nonlocal(仅支持Python3) 2:用列表来代替变量.即使是只有一个元素的数组,否则会报错.
- APP中常见上下循环滚动通知的简单实现,点击可进入详情
APP中常见上下循环滚动通知的简单实现,点击可进入详情 关注finddreams博客,一起分享一起进步!http://blog.csdn.net/finddreams/article/details/ ...
- C# T4使用
最近升级我们的框架到微服务了,而且是dotnetcore 2.0. 然后一个新的框架,最基本的Model和与数据库交互的Repository,我们都是要利用T4自动生成的. 首先这个是代码结构,在这个 ...
- 洛谷——P1033 自由落体
P1033 自由落体 题目描述 在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1.在地面上有一个小车(长为 L,高为 K,距原点距离为 S1).已知小球下落距离计算公 ...
- 某考试 T2 orzcyr
非常nice的一道行列式的题目. 考虑如果没有路径不相交这个限制的话,那么这个题就是一个行列式:设 a[i][j] 为从编号第i小的源点到编号第j小的汇点的路径条数,那么矩阵a[][]的行列式就是的答 ...
- 【欧拉函数】BZOJ2190-[SDOI2012]longge的数学问题
[题目大意] 求出∑gcd(i, N)(1<=i <=N). [思路] 对于x=ak,y=bk,若gcd(a,b)=1则必有gcd(x,y)=1.枚举N的所有因数,∑gcd(i, N)=∑ ...
- 线程协作-CountDownLatch
CountDownLatch允许一个或多个线程等待其他线程完成操作.
- linux下安装python2.7.5和MYSQLdb
由于开发的python web 扫描器需要在python2.7.5以及需要MYSQLdb这个库的支持,在此做一个记录,避免更换到新环境时的学习成本. 一.安装MYSQL 1.yum install m ...