vue-antd组件 form表单 required 设置 false 无效
列如:
:rules="{required: flase,validator:phoneCheck}"
无效,提交还是会验证
但是设置为:rules="{required: isPhoneCheck,message:'请填写手机号'}"
有效,提交不验证
····································································································································
问题场景
填写表单,手机号不必填,但是当填写手机号时要验证手机号格式
验证改写:
<a-form-item label="联系方式" :rules="{required: isPhoneCheck,validator:phoneCheck}" name="contactWay">
<a-input maxlength="11" v-model:value="formAdd.contactWay"></a-input>
</a-form-item>
/* 手机号验证 */
const isPhoneCheck = ref(false)
const phoneCheck = async (_rule, value) => {
if (value) {
isPhoneCheck.value = true
} else {
isPhoneCheck.value = false
}
// 核心代码
if (isPhoneCheck.value == false) return Promise.resolve();
var pattern = /^(13[0-9]|14[5-9]|15[0-3,5-9]|16[2,5,6,7]|17[0-8]|18[0-9]|19[0-3,5-9])\d{8}$/
if (!pattern.test(value)) {
return Promise.reject('手机号格式有误');
}
}