Vue+element组件(form表单)
表单验证大部分是用在注册或者登陆
一、首先需要添加form表单
1.打开element组件-引入form表单(需在VUE中提前安装element组件)
<el-form
:model="addForm"
:rules="addFormRules"
ref="addFormRef"
label-width="70px"
status-icon
>
<el-form-item label="用户名" prop="username">
<el-input v-model="addForm.username"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="addForm.password"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="addForm.email"></el-input>
</el-form-item>
<el-form-item label="手机" prop="mobile">
<el-input v-model="addForm.mobile"></el-input>
</el-form-item>
</el-form>
<!-- 底部区域 -->
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="addDialogVisible = false">确 定</el-button>
<el-button @click="addDialogVisible = false" style="margin-left:20%">取 消</el-button>
</span>
JS
//添加用户的表单数据
addForm: {
username: "",
password: "",
email: "",
mobile: ""
},
//添加表单的验证规则对象
addFormRules: {
username: [
{
required: true,
message: "请输入用户名",
trigger: "blur"
},
{
min: 3,
max: 10,
message: "用户名的长度在3-10个字符之间",
trigger: "blur"
}
],
password: [
{
required: true,
message: "请输入密码",
trigger: "blur"
},
{
min: 6,
max: 15,
message: "密码的长度在-15个字符之间",
trigger: "blur"
}
],
email: [
{
required: true,
message: "请输入邮箱",
trigger: "blur"
},
{
validator: checkEmail,
trigger: "blur"
}
],
mobile: [
{
required: true,
message: "请输入手机号",
trigger: "blur"
},
{
validator: checkMobile,
trigger: "blur"
}
]
}
其中关于手机号和邮箱的验证需要利用正则表达式来判断它是否是合法的
export default {
data() {
//验证邮箱规则
var checkEmail = (rule, value, cb) => {
// 验证邮箱的正则表达式
const regEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
if (regEmail.test(value)) {
// 合法的邮箱
return cb();
}
cb(new Error("请输入合法的邮箱"));
};
//验证手机号的规则
var checkMobile = (rule, value, cb) => {
// 验证手机号的正则表达式
const regMobile = /^([0|86|17951])?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
if (regMobile.test(value)) {
return cb();
}
cb(new Error("请输入合法的手机号"));
};
}
完整的JS代码
export default {
data() {
//验证邮箱规则
var checkEmail = (rule, value, cb) => {
// 验证邮箱的正则表达式
const regEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
if (regEmail.test(value)) {
// 合法的邮箱
return cb();
}
cb(new Error("请输入合法的邮箱"));
};
//验证手机号的规则
var checkMobile = (rule, value, cb) => {
// 验证手机号的正则表达式
const regMobile = /^([0|86|17951])?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
if (regMobile.test(value)) {
return cb();
}
cb(new Error("请输入合法的手机号"));
};
return{
//添加用户的表单数据
addForm: {
username: "",
password: "",
email: "",
mobile: ""
},
//添加表单的验证规则对象
addFormRules: {
username: [
{
required: true,
message: "请输入用户名",
trigger: "blur"
},
{
min: 3,
max: 10,
message: "用户名的长度在3-10个字符之间",
trigger: "blur"
}
],
password: [
{
required: true,
message: "请输入密码",
trigger: "blur"
},
{
min: 6,
max: 15,
message: "密码的长度在-15个字符之间",
trigger: "blur"
}
],
email: [
{
required: true,
message: "请输入邮箱",
trigger: "blur"
},
{
validator: checkEmail,
trigger: "blur"
}
],
mobile: [
{
required: true,
message: "请输入手机号",
trigger: "blur"
},
{
validator: checkMobile,
trigger: "blur"
}
]
}
}
}