有一个表单
<el-form-item prop="numberpoint"
style="width: 100px"
:rules="[{ required: integralCheck, message: '请输入积分', trigger: 'blur'},
integralCheck ? { validator: ruleGroup.checkNum500, trigger: 'blur'} : {}
]" >
<el-input
:disabled="isDisabled"
v-model="ruleFormOne.numberpoint"
maxlength = '3'
class="input-width"
placeholder="1~500"
clearable>
</el-input>
</el-form-item>
isChoosed 为true时候,需要验证,isChoosed 为false不需要验证。经常会出现提示 xx is not a string
ruleFormOne.numberpoint
将验证规则规则增加 isChoosed ? { validator: ruleGroup.checkNum500, trigger: ‘blur’,type: ‘number’} :ruleFormOne.numberpoint == ‘’ ? {type: ‘string’, trigger: ‘blur’} : {type: ‘number’, trigger: ‘blur’}
就解决了这个问题
<el-form-item prop="numberpoint"
style="width: 100px"
:rules="[{ required: integralCheck, message: '请输入积分', trigger: 'blur'}, isChoosed ? { validator: ruleGroup.checkNum500, trigger: 'blur',type: 'number'} :ruleFormOne.numberpoint == '' ? {type: 'string', trigger: 'blur'} : {type: 'number', trigger: 'blur'} ]" >
<el-input
:disabled="isDisabled"
v-model="ruleFormOne.numberpoint"
maxlength = '3'
class="input-width"
placeholder="1~500"
clearable>
</el-input>
</el-form-item>