使用vue.js验证输入 - v-model.number真正意味着什么?

时间:2017-02-08 11:33:52

标签: vue.js

如果我已经指定我的输入字段是数字的v-model.number,那么在表单提交之前我可以做出什么假设来验证数字输入(或者更确切地说,将JSON发布到服务器上)?即,我可以假设此时它总是一个数字,因此可以集中精力测试它是否落在一定范围内吗?或者我还需要测试isNan等吗?

1 个答案:

答案 0 :(得分:1)

我检查过来源。使用.number后缀会导致输入值(即使是type="number"的字符串)也可以通过以下函数进行解析:

/**
 * Convert a input value to a number for persistence.
 * If the conversion fails, return original string.
 */
export function toNumber (val: string): number | string {
  const n = parseFloat(val)
  return isNaN(n) ? val : n
}

这意味着你不能假设结果总是一个数字,但你可以假设它永远不是NaN。 但是,官方文档中没有明确说明这一点,因此可能会有所变化。 如果可能的话,我建议您使用type="number",否则就像通常那样进行验证。