因为后端字段类型设置要求,搜索输入框只能输入正整数,不然调用接口会报错,输入框手动删除内容会重新触发表单验证方法,但是如果@clear事件不会再触发一次新的表单校验,在事件中触发。

触发整个表单的校验:this.$refs.queryForm.validate();
触发对表单部分字段的校验:this.$refs.queryForm.validateField('propname');
<el-input clearable @clear="handleClear('queryForm','propname')" v-model="queryForm.propname" ></el-input>

方法:

// 查询表单验证,只能输入int类型
    searchIntValidate(rule: any, value: any, callback: any) {
        let reg = /^\+?[1-9]\d*$/;
        if (value && !reg.test(value)) {
            callback(new Error(String('只能输入正整数')));
        } else {
            callback();
        }
    }
    //因为多页面复用
    handleClear(refname: string, propname: string) {
        (this as any).$refs[refname].validateField(propname);
    }
Logo

前往低代码交流专区

更多推荐