element表单验证的问题?

      <el-form-item label="ISBN:" prop="goodsNo">
          <el-input v-model.number="form.goodsNo" type="number" style="width: 300px"/>
        </el-form-item>
        <el-form-item label="ISBN前四位:" prop="goodsNoFour">
          <el-input v-model.number="form.goodsNoFour" type="number" style="width: 300px"/>
        </el-form-item>
        
        
  rules: {
    goodsNo: [{ type: 'number', trigger: 'blur', message: '请输入数字' }],
    goodsNoFour: [{ type: 'number', trigger: 'blur', message: '请输入数字' }]
  },

这两个框可以不提交,但是如果要提交的话必须输入数字,我这么写的话好像就不行了,提交的时候不输入的话也会验证这个规则

阅读 2.1k
3 个回答

因为规则中设置了类型是数字,在提交表单,校验空不通过,所以才会提示。
1、你可以使用InputNumber组件
2、验证使用自定义验证,为空也表示通过

自定义验证


var validatePass = (rule, value, callback) => {
    if(value) {
        if(isNaN(value)) {
        callback(new Error('只能输入数字'))
        }
    }
    callback()
}

你已经设置了type='number'所以他必定是个数字,就没有必要表单校验了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进