记录 vue+iview 踩过的坑

1、iview多选框复选框

前端控制台报错:
在这里插入图片描述
代码
在这里插入图片描述
在这里插入图片描述

  • list需要定义为数组
  • lable加冒号

2、iview确认密码校验

<Modal v-model="modalPassword" :loading=true :mask-closable="false" @on-cancel="handleReset('resetPassword')">
      <div slot="header">
        <span>重置密码</span>
      </div>
      <Form :model="resetPassword" ref="resetPassword" :rules="ruleValidate" :label-width="120">
        <FormItem label="新密码" prop="Firstpassword">
          <Input v-model="resetPassword.Firstpassword"></Input>
        </FormItem>
        <FormItem label="确认密码" prop="Secondpassword">
          <Input v-model="resetPassword.Secondpassword"></Input>
        </FormItem>
      </Form>
      <div slot="footer">
        <Button @click="handleReset('resetPassword')">取消</Button>
        <Button type="primary" @click="passwordOk">确定重置</Button>
      </div>
    </Modal>
data() {
    const pwdCheckValidate = (rule, value, callback) => {
      let vm = this;
      if (value == '') {
        return callback(new Error('确认密码不能为空'));
      } else if (value != vm.resetPassword.Firstpassword) {
        return callback(new Error('两次密码不一致'));
      } else {
        callback();
      }
    };
    return {
    resetPassword:{},
    ruleValidate:{
        Firstpassword: [
          { required: true, message: '新密码不能为空', trigger: 'blur' },
          { type: 'string', pattern: /(?![0-9A-Z]+$)(?![0-9a-z]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,20}$/, message: '密码由8-20位大小写字母数字组成', trigger: 'blur' }
        ],
        Secondpassword: [
          { required: true, trigger: 'blur', validator: pwdCheckValidate },
          { type: 'string', pattern: /(?![0-9A-Z]+$)(?![0-9a-z]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,20}$/, message: '密码由8-20位大小写字母数字组成', trigger: 'blur' }
        ]
    }
    }
}

注意:

  • form表单的model加冒号,model与ref要保持一致
  • prop是用于表单校验的,重置表单不加则清除不掉

3、iview重置表单不能用

handleReset(name) {
      let vm = this;
      if (this.$refs[name] !== undefined) {
        this.$refs[name].resetFields();
      }
    }

加一个if判断就可以了

4、校验表单不能用或者报错 “TypeError: Cannot read property ‘validate’ of undefined”

原因:

1:传参不对
2:this.$refs[ruleForm].validate() 方式不识别。需要使用: this.$refs.ruleForm.validate();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无极的移动代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值