vueにおけるinput v-modelにおけるピット及びnumberの長さを制限する

1036 ワード

v-model.numberが存在するピット
 //                string  

入力したい内容は数字
 

出力はNumberタイプです.内部でNumber(order)に変換して出力しますが、大きな穴が埋まります.
Number('152845125481254538') // 152845125481254530
Number('152845125481254532') // 152845125481254530
Number('152845125481254534') //152845125481254530
Number('152845125481254523') // 152845125481254530

ここを見るとNumber()変換後にデータが変更されるので、v-model.numberデータを使用すると制御不能な変更が発生します
numberの入力長さを制限する

limitOrder () {
	//       
    if (this.$refs.order.value.length > 11) {
      this.$refs.order.value = this.$refs.order.value.slice(0, 18)
      this.order = this.$refs.order.value
    }
 },

存在するピット:データの真ん中から数字を削除すると、フォーカスが自動的に最後の1つにジャンプするので、長さの判読を行い、長さが制限する長さに達していない場合は、切り取る必要はありません.