技术标签: vue form validate 多个input vue rules 表单验证 验证手机号格式不能为空和格式
<template>
<div>
<el-container>
<el-header>
<el-header>
<el-row>
<el-col :span="8">
<div class="grid-content bg-purple"><img class="nav_logo" src="../../assets/nav_logo.png">
</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple-light">这个是开发者注册页面</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">
<router-link to="/login">
<el-button type="primary" round>已经有账户了,去登陆</el-button>
</router-link>
</div>
</el-col>
</el-row>
</el-header>
</el-header>
<el-main>
<div class="user_logon_develop_ym">
<div style="font-size: 35px"> 需求方用户注册</div>
<el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px">
<el-form-item label=" 用 户 名 : " prop="username">
<el-input type="text" v-model="ruleForm.username" placeholder="请输入用户名:"
autocomplete="off"></el-input>
</el-form-item>
<el-form-item label=" 邮 箱 : " prop="useremail">
<el-input type="text" v-model="ruleForm.useremail" placeholder="请输入邮箱:"></el-input>
</el-form-item>
<el-form-item label=" 密 码 : " prop="pass">
<el-input type="password" v-model="ruleForm.pass" placeholder="请输入密码:"
autocomplete="off"></el-input>
</el-form-item>
<el-form-item label=" 确认密码 : " prop="checkPass">
<el-input type="password" v-model="ruleForm.checkPass" placeholder="请再输入一遍密码:"
autocomplete="off"></el-input>
</el-form-item>
<el-form-item label=" 手 机 号 : " prop="userPhone">
<el-input type="text" v-model.number="ruleForm.userPhone" placeholder="请输入手机号:"></el-input>
</el-form-item>
<el-form-item label=" 手机验证码 : ">
<el-input type="text" placeholder="请输入验证码:" style="width:230px"></el-input>
<el-button type="text">发送验证码</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')">立即注册</el-button>
<el-button @click="resetForm('ruleForm')"> 重 置</el-button>
</el-form-item>
</el-form>
</div>
<div>
<router-link to="/logon">返回选择用户身份</router-link>
</div>
</el-main>
<el-footer>Footer</el-footer>
</el-container>
</div>
</template>
<script>
export default {
name: "LogonDevelop",
data() {
var checkUsername = (rule, value, callback) => {
if (!value) {
return callback(new Error('用户名不能为空!'));
}
};
var userEmail = (rule, value, callback) => {
const mailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/
if (!value) {
return callback(new Error('邮箱不能为空'))
}
setTimeout(() => {
if (mailReg.test(value)) {
callback()
} else {
callback(new Error('请输入正确的邮箱格式'))
}
}, 100)
};
var validatePass = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入密码'));
} else {
if (this.ruleForm.checkPass !== '') {
this.$refs.ruleForm.validateField('checkPass');
}
callback();
}
};
var validatePass2 = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入密码'));
} else if (value !== this.ruleForm.pass) {
callback(new Error('两次输入密码不一致!'));
} else {
callback();
}
};
var checkPhone = (rule, value, callback) => {
const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
if (!value) {
return callback(new Error('电话号码不能为空'))
}
setTimeout(() => {
// Number.isInteger是es6验证数字是否为整数的方法,实际输入的数字总是识别成字符串
// 所以在前面加了一个+实现隐式转换
if (!Number.isInteger(+value)) {
callback(new Error('请输入数字值'))
} else {
if (phoneReg.test(value)) {
callback()
} else {
callback(new Error('电话号码格式不正确'))
}
}
}, 100)
}
return {
ruleForm: {
username: '',
useremail: '',
pass: '',
checkPass: '',
userPhone: '',
},
rules: {
username: [
{validator: checkUsername, trigger: 'blur'}
],
useremail: [
{validator: userEmail, trigger: 'blur'}
],
pass: [
{validator: validatePass, trigger: 'blur'}
],
checkPass: [
{validator: validatePass2, trigger: 'blur'}
],
userPhone: [
{validator: checkPhone, trigger: 'blur'}
]
}
};
},
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>
<style scoped>
.el-header, .el-footer {
background-color: #B3C0D1;
color: #333;
text-align: center;
line-height: 60px;
}
.el-aside {
background-color: #D3DCE6;
color: #333;
text-align: center;
line-height: 200px;
}
.el-main {
background-color: #E9EEF3;
color: #333;
text-align: center;
line-height: 160px;
}
body > .el-container {
margin-bottom: 40px;
}
.el-container:nth-child(5) .el-aside,
.el-container:nth-child(6) .el-aside {
line-height: 260px;
}
.el-container:nth-child(7) .el-aside {
line-height: 320px;
}
.user_logon_develop_ym {
width: 500px;
margin: auto;
}
</style>
1. 介绍本题是xctf攻防世界中Reverse的进阶区的题elrond32题目来源: tinyctf-20142. 分析$ file rev300 rev300: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=a93ffe39302e19ef5184a1_ctf rev300
图像涉及卷积运算时,经常要用到0填充,0填充就是一种特殊的边缘填充,opencv-python库中用的就是copyMakeBorder()函数,这个函数有多种填充方式。原图: 用cv2.BORDER_REPLICATE填充,重复最后一个像素,代码及效果: img2 = cv2.copyMakeBorder(img1,200,200,200,200,cv2.BORDER_REPLICATE) #..._python中cv2库进行线条填充指定值
最近开始iPhone开发,遇到一个不大不小的问题,那就是怎样修改我的项目名字,xcode3.2之前的版本都必须通过手动来修改,3.2版本的话可以直接在Xcode 的Project下面的Rename修改。下面我来说说怎么在Xcode 3.1版本下面修改。在Xcode 中关闭你要修改的项目,最好也先关了Xcode .然后复制你的项目,通过command D或者复制粘贴都可以,得到一个复制文
Ex1: 猫狗收容所: 有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。 给定一个操作序列int[][2] ope(C++中为vector>)代表所有事件。若第一个元素为1,则代表有动物进入收容所,第二个元素为动物的编号,_收容在数据结构中是什么意思
rviz中创建的机器人模型,通过脚本方式控制其运动。
之前我在函数声明出列出函数声明如下:void Display_Normal();void Display_Reset()void Display_Year();void Display_Month();void Display_Day();void Display_Week();void Display_Hour();void Display_Minute();void Display_Secon..._errorc132
1. 取消堆叠,注释下面内容 // stack: '总量',2. 隐藏下载图标/*toolbox: { feature: { saveAsImage: {} } },*/3. 数据表经过显示数据 tooltip : { trigger: 'axis', axisPointer: { type: 'cro...
重启“Windows资源管理器”方法::1.按“Ctrl+Alt+Del”打开”任务管理器”,切换到“进程”选项卡。2.找到"Windows资源管理器",鼠标右击选中"重新启动"。..._电脑下方任务栏卡死
windows启动elasticsearch报错:warning: Falling back to java on path. This behavior is deprecated. Specify JAVA_HOME错误原因:windows 机器上已经安装了 java,但是没有配置环境变量 JAVA_HOME因为一台计算机上可以安装多个 JDK 和 JVM,为了避免混乱,可以新增环境变量 JAVA_HOME,指定一个默认使用的 JDK。使用 echo 命令检查环境变量 JAVA_HO..._warning: falling back to java on path. this behavior is deprecated. specify
SpringBatch主要是一个轻量级的大数据量的并行处理(批处理)的框架。作用和Hadoop很相似,不过Hadoop是基于重量级的分布式环境(处理巨量数据),而SpringBatch是基于轻量的应用框架(处理中小数据)。这里使用SpringBatch做了一个能跑的最简单例子,进行描述SpringBatch的基本作用。如果需要进行深入学习,请详细参考阅读https://docs.spring.io/spring-batch/4.0.x/reference/html/index.html;英文.._springbatch springboot
使用 drbd 来实现两台服务器同时写入,实现 gitlab 的自动备份(主要是备份git仓库和gitlab数据库)。当主服务器挂掉后,如果不能及时修复主机,则启用从机,把从机转为主机。当之前的主机修复好后,再切换回来,数据依然会自动同步到最新的状态。192.168.0.123 主机gitlab1192.168.0.124 从机gitlab2drbd 配置要求drbd 需要使用单独的磁盘..._gitlab drbd备份
MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。BLOB类型实际是个类型系列(TinyBlob、Blob、MediumBlob、LongBlob),除了在存储的最大信息量上不同外,他们是等同的。MySQL的四种BLOB类型 类型 大小(单位:字节) TinyBlob 最大 255 Blob 最