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 表单验证实例的更多相关文章

  1. vue表单验证--veevalidate使用教程

    vue表单验证----vee-validate使用教程 官网:https://baianat.github.io/vee-validate/ 一.安装 npm install vee-validate ...

  2. Bootstrap+PHP表单验证实例

    简单实用的Bootstrap+PHP表单验证实例,非常适合初学者及js不熟悉者,还有ajax远程验证 js验证表单 1 $(document).ready(function() { 2 $('#def ...

  3. jQuery-easyui和validate表单验证实例

    jQuery EasyUI 表单 - 表单验证插件validatebox 使用时需要向页面引入两个css文件如下: <link rel="stylesheet" href=& ...

  4. jquery-4 完整表单验证实例

    jquery-4 完整表单验证实例 一.总结 一句话总结:在form的jquery对象中返回false即可终止表单提交. 1.验证的显示错误消息如何布局? 开始时隐藏,出现错误后显示 10 .erro ...

  5. 写一个简单易用可扩展vue表单验证插件(vue-validate-easy)

    写一个vue表单验证插件(vue-validate-easy) 需求 目标:简单易用可扩展 如何简单 开发者要做的 写了一个表单,指定一个name,指定其验证规则. 调用提交表单方法,可以获取验证成功 ...

  6. HTML5 web Form表单验证实例

    HTML5 web Form 的开发实例! index.html <!DOCTYPE html> <html> <head> <meta charset=&q ...

  7. vue表单验证:vee-validate中文提示

    官方文档:https://baianat.github.io/vee-validate/guide/ vee-validate可用于vue项目中进行表单验证,使用方法在官方API上都可以查到: 使用过 ...

  8. Vue表单验证插件的制作过程

    一.表单验证模块的构成 任何表单验证模块都是由 配置――校验――报错――取值 这几部分构成的. 配置: 配置规则 和配置报错,以及优先级 校验: 有在 change 事件校验, 在点击提交按钮的时候校 ...

  9. angular表单验证实例----可用的代码

    前段时间,公司做一个单页面,就是一个表单验证,早开始在菜鸟教程上关注了angular,所以下派上用场了 angular里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ...

随机推荐

  1. unity制作简单血条

    学习Unity已经10天了,也没发现有什么长进,真的急.昨天仿着官方Demo做了个射击游戏轮廓,其中需要给每个怪做一个血条. 搜了一些,挺复杂的,用NGUI或者UGUI,外加很长的代码...不过还是找 ...

  2. 洛谷P1095 绝地武士的逃离

    好吧原题是守望者的逃离,我强行改了一波题面,因为信仰=-=(? May the force be with us. 绝地跑步速度为17m/s,但无法逃离荒岛.绝地的原力恢复速度为4点/s,只有处在原地 ...

  3. poj3233(等比矩阵求和)

    poj3233 题意 给出一个 \(n \times n\) 的矩阵 \(A\) ,求 \(A + A^2 + A^3 + ... + A^k\) . 分析 构造矩阵 \[ \begin{bmatri ...

  4. 并查集+背包 【CF741B】 Arpa's weak amphitheater and Mehrdad's valuable Hoses

    Descirption 有n个人,每个人都有颜值bi与体重wi.剧场的容量为W.有m条关系,xi与yi表示xi和yi是好朋友,在一个小组. 每个小组要么全部参加舞会,要么参加人数不能超过1人. 问保证 ...

  5. mdadm Raid5 /dev/md0 lost a disk and recovery from another machine

    centos -- how to add a new disk into a mdadm raid5 /dev/md0 which lost a /dev/sdc1 disk and  revoery ...

  6. bzoj DZY Loves Math V

    Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 509  Solved: 284[Submit][Status][Discuss] Descriptio ...

  7. 【小笔记】斜率优化的结论(WC)

  8. 【AC自动机/fail树】BZOJ3172- [Tjoi2013]单词

    [题目大意] http://www.lydsy.com:808/JudgeOnline/problem.php?id=3172 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会在论文中出现很多 ...

  9. Python 升级3.6

    首先:更新gcc,因为gcc版本太老会导致新版本python包编译不成功代码如下:#yum -y install gcc 然后下载python源tar包 可利用linux自带下载工具wget下载,如下 ...

  10. Ubuntu下创建程序启动器

    1 以上是使用手动的方法,程序有图标 其中,配置文件改为: [Desktop Entry] Version=1.0 Name=eclipse Exec=/home/hu/soft/eclipse/ec ...