2017-02-08 12 views
0

入力フィールドが数字の場合、v-model.numberと指定した場合、フォーム提出前に数値入力を検証する(またはJSONをサーバーにポストする)ための前提はありますか?私は、この時点で常に数字になると思うので、それが特定の範囲内に入るかどうかをテストすることに集中することができますか?それとも、isNanなどをテストする必要がありますか?vue.jsによる入力の検証 - v-model.numberの意味は本当ですか?

+0

v-modelの.number修飾子は、ほとんどが数値入力型で使用されますが、実際の数値にnumberを含む解析文字列があります。 数値を入力すると、それを検出して解析する入力タイプのテキストで使用できます。 –

答えて

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"に行くことをお勧めします。そうでない場合は、通常と同じように検証します。

+1

これは正確には、http://jsbin.com/hiyifadino/edit?html,js,outputをチェックしてください –

関連する問題