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里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ...
随机推荐
- Tk写的发邮件小程序
from tkinter import * import smtplib from email.mime.text import MIMEText from email.header import H ...
- rest_framework 权限流程
权限流程 权限流程与认证流程非常相似,只是后续操作稍有不同 当用户访问是 首先执行dispatch函数,当执行当第二部时: #2.处理版本信息 处理认证信息 处理权限信息 对用户的访问频率进行限制 s ...
- 云平台资源挂盘办法V1.2
一.优先使用mount 方式进行挂盘,记得使用sync参数,如果对方网络限制了445端口,我们被迫采用第二种办法. mount -t cifs -o sync,username='Administra ...
- cvCalcOpticalFlowPyrLK的使用--基于高斯金字塔的稀疏光流特征集求解
void cvCalcOpticalFlowPyrLK( const CvArr* prev, const CvArr* curr, CvArr* prev_pyr, CvArr* curr_pyr, ...
- css-demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python 统计发送请求到接收response的时间
由于需要测试请求一个接口所耗用的时间,在网上查找资料也麻烦,所以自己总结一下 找到elapsed 函数 ,按照文档说的是获取请求发出的时间至响应到达经过的时间,,具体用法如下: 执行的结果是 微秒 单 ...
- 【博弈论】【SG函数】【找规律】Gym - 101147A - The game of Osho
以后这种题还是不能空想,必须打个表看看,规律还是比较好找的……具体是啥看代码.用SG函数暴力的部分就不放了. #include<cstdio> using namespace std; i ...
- 【kmp算法】bzoj1355 [Baltic2009]Radio Transmission
引用题解:http://blog.csdn.net/wyfcyx_forever/article/details/40347425 #include<cstdio> #include< ...
- python3开发进阶-Django视图(View)的常见用法
阅读目录 简述Django的View(视图) CBV和FBV Request对象和Response对象 Django组件(render,redirect)详解 一.简述Django的View(视图) ...
- 【棋盘DP】【OpenJudge7614】最低通行费
最低通行费 总时间限制: 1000ms 内存限制: 65536kB [描述] 一个商人穿过一个 N*N 的正方形的网格,去参加一个非常重要的商务活动.他要从网格的左上角进,右下角出.每穿越中间1个小方 ...