javascript - 如何使用 Vuelidate minValue maxValue

标签 javascript vue.js vuelidate

我找不到如何检查大于 0 的值,因为 minValue(0) 也接受 0,但是如果使用 minValue(1) 那么任何介于 0 之间的小数并且 1 也不会被接受。

我也不知道为什么我不能使用来自 data/computed 的变量用于下面的 maxValue。如果我使用 maxValue(200) 它会起作用,但我需要它是动态的。

validations: {
    form: {
        amount: {
            maxValue: maxValue(this.maxAmount), // Uncaught TypeError: Cannot read property 'maxAmount' of undefined
        },
    },
},
validations: {
    form: {
        amount: {
            maxValue: maxValue(maxAmount), // Uncaught ReferenceError: maxAmount is not defined
        },
    },
},

最佳答案

我相信在这种情况下,您的验证 需要是一个函数,而不是一个对象。

validations() {
  return {
    form: {
      amount: { maxValue: maxValue(this.maxValue) }
    }
  }
}

您可以在此处找到相关示例:https://vuelidate.netlify.com/#sub-dynamic-parameters

--编辑--

关于大于0的值,抄 self 的评论:

我不完全确定,但似乎没有针对这种情况的内置验证器。您可以编写自己的验证器,它看起来或多或少像这样:

const greaterThanZero = (value) => value > 0

validations() {
  form: {
    amount: {
      maxValue: greaterThanZero
    }
  } 
}

或者您可以使用 minValue(0.00000001) 作为变通方法自定义验证器也可以采用参数,因此您可以编写 greaterThan 自定义验证器,它将采用动态值(此处的相关文档:https://vuelidate.netlify.com/#sub-extra-parameters)

关于javascript - 如何使用 Vuelidate minValue maxValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55413411/

相关文章:

javascript - 获取不包括滚动条的整个 iframe 内容的大小

javascript - 在 javascript 中使用原型(prototype)会对 ajax 调用和异步代码产生负面影响吗?

javascript - Vue-test-utils:在单个测试中多次使用 $nextTick

vue.js - 如何使用 Vue.Draggable 禁止拖动特定元素

javascript - vuejs 路由器 - 要求未定义

javascript - Vuelidate isUnique 导致无限循环

javascript - 仅当用户完成输入时如何使用 Vuelidate 显示错误

javascript - 为什么浏览器开发人员工具不显示输入字段值?

javascript - other 下的图像可以有焦点(用于悬停)吗?

vue.js - 隐藏特定标题及其在 vuetify 数据表中的对应列