您的位置:首页 > 娱乐 > 八卦 > 湛江专业自助建站详细解读_上海品牌推广公司_最新热点新闻事件_百度账号购买1元40个

湛江专业自助建站详细解读_上海品牌推广公司_最新热点新闻事件_百度账号购买1元40个

2025/4/30 7:55:31 来源:https://blog.csdn.net/qq_73968447/article/details/147260236  浏览:    关键词:湛江专业自助建站详细解读_上海品牌推广公司_最新热点新闻事件_百度账号购买1元40个
湛江专业自助建站详细解读_上海品牌推广公司_最新热点新闻事件_百度账号购买1元40个

写一个vue组件Password.vue

没有表单验证只有3个表单项

<template><div><el-form><el-form-item label="旧密码"><el-input></el-input></el-form-item><el-form-item label="新密码"><el-input></el-input></el-form-item><el-form-item label="验证密码"><el-input></el-input></el-form-item></el-form></div>
</template>
<script setup></script>

路由省略

给这个表单绑定一个对象

<template><div><el-form :="data.form"><el-form-item label="旧密码" v-model="data.form.oldPassword"><el-input ></el-input></el-form-item><el-form-item label="新密码" v-model="data.form.password"><el-input></el-input></el-form-item><el-form-item label="验证密码" v-model="data.form.confirmPassword"><el-input></el-input></el-form-item></el-form></div>
</template>
<script setup>
import {reactive}  from "vue";
const data = reactive({form: {oldPassword: '',password: '',confirmPassword: ''}
})
</script>

给表单绑定规则注意表单项一定要有prop属性 属性值对应 data.rules里的属性

<template><div><el-form :model="data.form" :rules="data.rules"><el-form-item label="旧密码" prop="oldPassword" ><el-input v-model="data.form.oldPassword"></el-input></el-form-item><el-form-item label="新密码"   prop="password"><el-input v-model="data.form.password"></el-input></el-form-item><el-form-item label="验证密码" ><el-input v-model="data.form.confirmPassword"></el-input></el-form-item></el-form></div>
</template>
<script setup>
import {reactive}  from "vue";
const data = reactive({form: {oldPassword: '',password: '',confirmPassword: ''},rules: {oldPassword: [{ required: true, message: '请输入旧密码', trigger: 'blur' },{ min: 6, max: 32, message: '长度在 6 到 32 个字符', trigger: 'blur' }],password: [{ required: true, message: '请输入新密码', trigger: 'blur' },{ min: 6, max: 32, message: '长度在 6 到 32个字符', trigger: 'blur' }]}
})
</script>

       

添加自定义规则注意规则有优先级的

<template><div><el-form :model="data.form" :rules="data.rules"><el-form-item label="旧密码" prop="oldPassword" ><el-input v-model="data.form.oldPassword"></el-input></el-form-item><el-form-item label="新密码"   prop="password"><el-input v-model="data.form.password"></el-input></el-form-item><el-form-item label="验证密码"   prop="confirmPassword"><el-input v-model="data.form.confirmPassword"></el-input></el-form-item></el-form></div>
</template>
<script setup>
import {reactive}  from "vue";
const validatePass1 = (rule, value, callback) => {if (value === '') {callback(new Error('请输入新密码'));} else if (value !== '123') {callback(new Error('旧密码错误'));}else{callback();}
}
const validatePass2 = (rule, value, callback) => {if (value === '') {callback(new Error('请再次输入新密码'));} else if (value !== data.form.password) {callback(new Error('两次输入密码不一致!'));} else {callback();}
}
const data = reactive({form: {oldPassword: '',password: '',confirmPassword: ''},rules: {oldPassword: [{ required: true, message: '请输入旧密码', trigger: 'blur' },{validator: validatePass1, trigger: 'blur'}],password: [{ required: true, message: '请输入新密码', trigger: 'blur' },{ min: 6, max: 32, message: '长度在 6 到 32个字符', trigger: 'blur' }],confirmPassword: [{ required: true, message: '请再次输入新密码', trigger: 'blur' },{ validator: validatePass2, trigger: 'blur' }]}
})
</script>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com