Vuetify.js 创建表单编号输入并验证它

Vuetify.js 创建表单编号输入并验证它,vuetify.js,Vuetify.js,如何正确验证正整数的数字输入字段?我使用这些规则 numberRules: [ v => v.length > 0 || 'This field may not be empty', v => Number.isInteger(v) || 'The value must be an integer number', v => v > 0 || 'The value must be greater than zero' ] 但结果是错

如何正确验证正整数的数字输入字段?我使用这些规则

  numberRules: [
    v => v.length > 0 || 'This field may not be empty',
    v => Number.isInteger(v) || 'The value must be an integer number',
    v => v > 0 || 'The value must be greater than zero'
  ]
但结果是错误的。我举了一个例子来说明我的错误行为


要将文本字段修改为数字输入,我添加了
type=“number”
作为组件属性。

您会得到错误的结果,因为规则方法中的
v
实际上是
string
(是的,有趣的事实:)

你可以:

  • 将规则更改为
    v=>Number.isInteger(Number(v))| |“值必须是整数”,

  • .number
    修饰符添加到
    v-model=…
    中,使其看起来像
    v-model.number=…
    。但在这种情况下,第一个规则方法将不起作用,因为
    v
    as number没有
    .length


  • 谢谢你的回复。你介意提供一个修改过的沙箱吗?我将第二条规则更改为
    v=>Number.isInteger(Number(v))
    ,但仍然不起作用:/您能用
    .Number
    修饰符检查这个和这个吗。我尝试了这些示例,但没有修改字段,我没有得到有效的表单,当单击一个字段并将其保留时,我会出现错误,如
    字段可能不是空的
    这是我的代码啊,这是因为初始值是
    数字
    ,但更改后它是
    字符串
    。疯狂的JS!在第一条规则中使用
    String(v).length>0