vue 的表单验证

1.使用<el-form>包裹整个表单 在其中使用:model 绑定数据 和 :rules绑定校验规则

 <el-form :model="user" :rules="rules">

......................................

</el-from>

2.在script中添加使用数据 以及 校验规则(都添加在data中)

 data() {

    return {

      user: {

          username:'',

          password:''

      },

        rules: {

//校验数据

    username: [

      { required: true, message: "请输入用户名", trigger: "blur" },

      { min: 3, max: 10, message: "长度在 3 到 10个字符", trigger: "blur" },

    ],

    password: [

      { required: true, message: "请输入密码", trigger: "blur" },

      { min: 1, max: 10, message: "长度在 3 到 10 个字符", trigger: "blur" },

    ],

  }

    };

  },

3.在input应该被el-from-item包裹 传入prop (prop对应校验数据) 

    <div class="title">登录</div>

<el-form :model="user" :rules="rules">

        <el-form-item prop="username">

          <el-input

            size="medium"

            style="margin: 10px auto"

            prefix-icon="el-icon-user"

            v-model="user.username" ></el-input>

      </el-form-item>

  </el-from>

4.数据提交校验  在<el-form>中使用ref (校验失败就不会发送请求)ref:本页面获取dom元素

 <el-form :model="user" :rules="rules" ref="userForm">

在method方法中使用回调判断数据校验 

methods: {

    login() {

      this.$refs['userForm'].validate((valid) => {

        //如果合法

        if (valid) {

          request.post("/user/login", this.user).then((res) => {

            if (!res) {

              this.$message.error("密码错误,请重试");

            } else {

              this.$message.success("登录成功");

              this.$router.push("/");

            }

          });

        }

        //非法

        else {

            console.log("失败");

            return false;

        }

      });

    },

  },

结果: 

  • 10
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值