Vue 动态改变 button 的 disabled 状态

10-12 11:12 字数 971 阅读 159 已编辑

在使用 iview 做自定义表单验证时,有一个需求是当用户名和手机号都填写正确后,下一步按钮的 disabled 设置为 false,记录一下学习过程。

<Button type="primary" shape="circle" :disabled="checkStep1Already">下一步</Button>
data () {
    const validateMobile = (rule, value, callback) => {
        if (/(^0?[1][3-9][0-9][\d]{8}$)|(^0[1-9][\d]{1,2}[- ]?[\d]{7,8}[-| ]?[\d]*$)/.test(value)) {
            this.mobileAlready = true
            callback()
        } else {
            this.mobileAlready = false
            callback(new Error('请输入正确的手机号码'))
        }
    }
    const validateUsername = (rule, value, callback) => {
        if (/^[\u4e00-\u9fa5_a-zA-Z0-9_]{4,15}$/.test(value)) {
            this.usernameAlready = true
            return callback()
        } else {
            this.usernameAlready = false
            return callback(new Error('用户名要求4-15字符'))
        }
    }
    return {
        usernameAlready: false,
        mobileAlready: false,
        formData: {
            username: '',
            mobile: '',
            email: '',
            password: '',
        },
        formRule: {
            username: [{
                validator: validateUsername,
                required: true,
                trigger: 'blur'
            }],
            mobile: [{
                validator: validateMobile,
                required: true,
                trigger: 'blur'
            }],
            password: [{
                required: true,
                message: '请填写密码',
                trigger: 'blur'
            }, {
                type: 'string',
                min: 6,
                message: '密码长度不能小于6位',
                trigger: 'blur'
            }]
        }
    }
},
computed: {
    checkStep1Already () {
        return !(this.usernameAlready && this.mobileAlready)
    }
}
1人点赞>
关注 收藏 改进 举报
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论