第一个Vue项目mjdai_auto_office之表单验证踩坑

本文记录了一位开发者在时隔两年后重新接触前端,通过Vue.js实现登录页面的过程中遇到的表单验证问题。示例代码展示了如何设置表单验证规则,包括用户名、密码和验证码的必填验证。在实际运行中,发现rules未生效,原因是缺少冒号、prop名称与v-model不匹配以及required拼写错误。修复这些问题后,表单验证功能正常工作。
摘要由CSDN通过智能技术生成

前言

一直想开发一个功能比较强大的项目,但是一直没有动手,最近终于有点时间来折腾它了。由于时隔两年没有接触前端了,所以需要一个小项目先练练手感。等这个项目完工之后在着手搞一个大工程。都说好记星不如烂笔头,现在就将这一个过程记录下来,万一有什么踩坑的地方,也可以提示后来人。

接上一篇登录页面表单校验踩坑记录
示例代码如下:
<template>
    <div>
        <el-form :rules="rules"  ref="loginForm" :model="loginForm" class="loginContainer">
            <h3 class="loginTitle" >登录入口</h3>
            <el-form-item prop="username">
                <el-input type="text" auto-complete="false" v-model="loginForm.username" placeholder="请输入用户名"></el-input>
            </el-form-item>
            <el-form-item prop="password">
                <el-input type="password" auto-complete="false" v-model="loginForm.password" placeholder="请输入密码"></el-input>
            </el-form-item>
            <el-form-item prop="code">
                <el-input type="text" auto-complete="false" v-model="loginForm.code"
                          placeholder="点击图片更换验证码" style="width: 250px;margin-right: 5px"></el-input>
                <img :src="captchaUrl">
            </el-form-item>
            <el-checkbox v-model="checked" class="loginRemember">记住我</el-checkbox>
            <el-button type="primary" style="width: 100%" @click="submitLogin">登录</el-button>
        </el-form>
    </div>
</template>

<script>
    export default {
        name: "Login",
        data(){
            return {
                captchaUrl:'',
                loginForm:{
                    username:"admin",
                    password:"123",
                    code:""
                },
                checked: true,
                rules: {
                    username: [{required: true,message: '请输入用户名',trigger: 'blur'}],
                    password: [{required: true,message: '请输入密码',trigger: 'blur'}],
                    code: [{required: true,message: '请输入验证码',trigger: 'blur'}]
                }
                // https://element.eleme.cn/#/zh-CN/component/form 表单验证
            }
        },
        methods:{
            submitLogin(){
                this.$refs.loginForm.validate((valid) => {
                    if (valid) {
                        alert('submit!');
                    } else {
                        this.$message.error('请输入所有的必填字段信息');
                        return false;
                    }
                });
            }
        }
    }
</script>

<style>
    .loginContainer{
        board-radius:15px;
        background-clip:padding-box;
        margin:100px auto;
        width:350px;
        padding: 15px 35px 15px 35px;
        background: #fff;
        board: 1px solid #eaeaea;
        box-shadow: 0 0 25px #cac6c6;
    }
    .loginTitle{
        margin: 0px auto 40px auto;
        text-align: center;
    }
    .loginRemember{
        text-align: left;
        margin: 0px 0px 15px 0px;
    }
</style>
rules不生效
  • rules没有在前面加 :
  • prop中的名字没有和v-model中的名字匹配
  • required没有拼写正确,写成了require
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值