vue 常用的表单验证,包括手机号码,固定电话和身份证...
<template>
<div>
<pl-content-box>
<pl-page-nav :show-previous=true></pl-page-nav>
<pl-content-box-block>
<pl-content-box-card>
<el-form :model="baseForm" ref="baseForm" label-width="150px">
<el-row>
<el-col :span="20">
<el-form-item label="报名编号" prop="memName">
<pl-content-item-text>{{baseForm.applyCode}}</pl-content-item-text>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="申贷金额(元)" prop="applyAmt"
:rules="[
{ required: true, message: '融资金额必填'},
{ type: 'number', message: '融资金额必须为数字'}]">
<pl-input-number v-model="baseForm.applyAmt" placeholder="¥" :min="0" :valueEmpty="false" :numeric-precision="2">
</pl-input-number>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="授信机构" prop="creditFin"
:rules="[{required: true, message: '授信机构必选'}]">
<pl-dictionary-select type="bank_brand" v-model="baseForm.creditFin"
style="width: 100px;" :showEmpty="false"></pl-dictionary-select>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="申请人姓名" prop="applicantName"
:rules="[{required: true, message: '请填写申请人姓名'}]">
<el-input v-model="baseForm.applicantName" placeholder="请填写申请人姓名"></el-input>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="手机号码" prop="applicantPhone"
:rules="[
{required: true, message: '请输入手机号码', trigger: 'change'},
{validator: checkPhone, trigger: 'change'}]">
<el-input v-model="baseForm.applicantPhone" placeholder="请填写申请人手机号码"></el-input>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="固定电话" prop="applicantTel"
:rules="[{required: true, message: '请输入固定电话', trigger: 'change'},
{validator: checkTel, trigger: 'change'}]">
<el-input v-model="baseForm.applicantTel" placeholder="请填写申请人固定电话"></el-input>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="申请日期" prop="applyDate" >
<pl-content-item-text>{{baseForm.applyDate}}</pl-content-item-text>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="备注" prop="remark">
<el-input v-model="baseForm.remark" placeholder="请填写备注"></el-input>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="证件类型" prop="certType" :rules="[
{required: true, message: '请输入证件类型', trigger: 'change'}
]">
<pl-dictionary-select type="id_type" v-model="form.certType" :showEmpty="false"></pl-dictionary-select>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="证件号码" prop="certNo" :rules="[
{required: true, message: '请填写证件号码', trigger: 'blur' },
{pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/, message: '证件号码格式有误!', trigger: 'blur'}
]">
<el-input v-model="form.certNo" placeholder="输入证件号码"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</pl-content-box-card>
</pl-content-box-block>
</pl-content-box>
<pl-affix :offset-bottom="0">
<pl-content-box-toolbar class="text-center" :border="false">
<el-button icon=" anticon icon-arrowleft" @click="callback">返回</el-button>
<el-button type="primary" icon=" anticon icon-clockcircleo" @click="submitAgain">提交</el-button>
</pl-content-box-toolbar>
</pl-affix>
</div>
</template>
<script>
import {MsgType} from 'core/constants';
export default {
data () {
return {
nextLoading: false,
type: 'add',
baseForm: {
applyId: '',
applyCode: '',
applyAmt: '',
applyDate: '',
applyState: '',
creditFin: '',
applicantName: '',
applicantPhone: '',
applicantTel: '',
remark: ''
}
};
},
methods: {
callback () {
this.$router.push({name: 'cfin.biz.my-registration'});
},
checkTel (rule, value, callback) {
if (!(/^((0\d{2,3})-)?(\d{7,8})(-(\d{3,4}))?$/.test(value))) {
callback(new Error('请输入正确的电话号码!'));
} else {
} callback();
},
checkPhone (rule, value, callback) {
if (!(/^1[34578]\d{9}$/.test(value))) {
callback(new Error('请输入正确的手机号码!'));
}
// else {
// this.$api.bsp.member.checkPhoneNo(this.form.userPhone, this.form.memId).then(ret => {
// if (ret) {
// callback(new Error('该手机号码已存在,请修改手机号码。'));
// } else {
// callback();
// }
// });
// }
},
submitAgain () {
console.log('提交');
this.$refs['baseForm'].validate((valid) => {
if (valid) {
console.log('通过');
if (this.type === 'add') {
this.$api.cfin.quota.saveApply(this.baseForm).then(ret => {
if (ret.type === MsgType.SUCCESS) {
this.$confirm(ret.msg, '提示', {
confirmButtonText: '确定',
type: ret.type
});
this.callback();
} else {
this.$confirm(ret.msg, '提示', {
confirmButtonText: '确定',
type: ret.type
});
}
});
} else {
this.$api.cfin.quota.againApply(this.baseForm).then(ret => {
if (ret.type === MsgType.SUCCESS) {
this.$confirm(ret.msg, '提示', {
confirmButtonText: '确定',
type: ret.type
});
this.callback();
} else {
this.$confirm(ret.msg, '提示', {
confirmButtonText: '确定',
type: ret.type
});
}
});
}
}
});
}
},
created () {
console.log(this.$route.params);
if (this.$route.params.applyId === undefined) {
this.type = 'add';
console.log('add');
this.$api.cfin.quota.getApplySequence().then(ret => {
this.baseForm.applyCode = ret.code;
});
} else {
this.type = 'edit';
let params = this.$route.params;
this.baseForm.applyId = params.applyId;
this.$api.cfin.quota.getCreditApply(params).then(ret => {
this.baseForm = ret;
this.baseForm.applicantPhone = Number(ret.applicantPhone);
});
}
this.$api.cfin.quota.getSystemDate().then(ret => {
this.baseForm.applyDate = ret;
});
}
}
;
</script>

点击保存按钮时,如果form里面的表单验证通过这进入下面代码中的 if(valid) 里面,否者进入else.
//点击保存按钮
save () {
this.$refs['form'].validate((valid) => {
if (valid) {
console.log('验证通过') ;
this.resetFrom();
});
} else {
console.log('验证不通过') ;
return false;
}
});
},
PS:表单输入长度控制验证
name: [
{required: true, message: '请输入活动名称', trigger: 'blur'},
{min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur'}
],
vue 常用的表单验证,包括手机号码,固定电话和身份证...的更多相关文章
- vue validate多表单验证思考 之前写过一个里外层,现在觉得不合适,应该平行的写,然后都给ret,最后判断ret 再做出反应,这样整体表单的所有验证就都报验证,然后最后提交的时候把组件内的对象合并到总的对象,再提交
vue validate多表单验证思考 之前写过一个里外层,现在觉得不合适,应该平行的写,然后都给ret,最后判断ret 再做出反应,这样整体表单的所有验证就都报验证,然后最后提交的时候把组件内的对象 ...
- vue+element 动态表单验证
公司最近的项目有个添加动态表单的需求,总结一下我在表单验证上遇到的一些坑. 如图是功能的需求,这个功能挺好实现的,但是表单验证真是耗费了我一些功夫. vue+element在表单验证上有一些限制,必须 ...
- js 常用正则表达式表单验证代码
正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下:测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一 ...
- js常用正则表达式表单验证代码
方法一: var re=/正则表达式/; re.test($("txtid").val()) 方法二: $("txtid").val.match(/正则 ...
- vue elementui form表单验证
最近我们公司将前端框架由easyui 改为 vue+elementui .自学vue两周 就开始了爬坑之路.业余时间给大家分享一下心得,技术新手加上第一次分享(小激动),有什么不足的地方欢迎大家指正, ...
- jQuery基础(常用插件 表单验证,图片放大镜,自定义对象级,jQuery UI,面板折叠)
1.表单验证插件——validate 该插件自带包含必填.数字.URL在内容的验证规则,即时显示异常信息,此外,还允许自定义验证规则,插件调用方法如下: $(form).validate({o ...
- inform表单验证,正则表达式,用户名,身份证,密码,验证码
最近利用空闲时间写了部分表单验证,包括用户名,身份证,密码,验证码,仅为自己巩固最近所学的知识 表单的样式使用的是table布局,因为觉得DIV布局定位比较麻烦,table有三列,分别为基本信息,输入 ...
- js实现表单验证 常用JS表单验证
CSS代码 @charset "gb2312"; /* CSS Document */ body,dl,dt,dd,div,form {padding:;margin:;} #he ...
- Vue中Form表单验证无法消除验证问题
iView的表单api给出了一个resetFields方法,用于重置整个表单输入的内容并清除验证提示. 但是有时候需要只消除部分的iview的resetFields方法源码是这样的resetField ...
随机推荐
- BIEE11G系统数据源账号过期问题(默认安装步骤)
BIEE默认完毕安装后处于安全的考虑会对BI系统账户设定180天的有效期设置.例如以下图所看到的: 当账户超过时间后会自己主动口令失效.而造成BI系统启动失败.无法正常訪问等相关问题,到时候又一次设置 ...
- OpenCV4Android编译
http://blog.sina.com.cn/s/blog_602f87700102vdnw.html (2015-04-02 11:10:01) 转载▼ 最近的一个项目中,需要自己编译Op ...
- 网络爬虫(蜘蛛)Scrapy,Python安装!
Scrapy,Python安装.使用! 1.下载安装Python2.7.6.由于Scrapy还不支持3.x版本号. Latest Python 2 Release - Python 2.7.6,安装时 ...
- quick-cocos2d-x开发工具sublime text及其强力插件QuickXDev
更新:如今QuickXDev已经能够通过Package Control下载了,全部QuickXDev相关的请看这里:http://my.oschina.net/lonewolf/blog?catalo ...
- 九度OJ 1091:棋盘游戏 (DP、BFS、DFS、剪枝)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1497 解决:406 题目描述: 有一个6*6的棋盘,每个棋盘上都有一个数值,现在又一个起始位置和终止位置,请找出一个从起始位置到终止位置代 ...
- it starts (“forks”) a new process for each connection.
PostgreSQL: Documentation: 10: 1.2. Architectural Fundamentals https://www.postgresql.org/docs/10/st ...
- mysql-test-run.pl
wget https://raw.githubusercontent.com/mysql/mysql-server/5.7/mysql-test/mysql-test-run.pl
- 使用MSSQL同步&发布数据库快照遇到错误:对路径“xxxxx”访问被拒绝的解决方法
使用MSSQL同步 数据库同步做后后测试:先在同步那台服务器(服务器A)数据库里修改里面数据库,然后再去被同步那台服务器(服务器B)看下数据有没被同步过去 发布数据库快照遇到错误:对路径“xxxxx” ...
- PAT 天梯赛 L2-013. 红色警报 【BFS】
题目链接 https://www.patest.cn/contests/gplt/L2-013 思路 可以通过图的连通块个数来判断 假如 一座城市的失去 改变了其他城市之间的连通性 那么 这座城市本来 ...
- 如何让A20,android开机自动启动C程序【转】
本文转载自:http://blog.csdn.net/u011258134/article/details/50749174 如何让A20,android开机自动启动C程序 2014-12-26 11 ...