Разрешить только цифры и одну точку с ограничением в 2 знака после запятой при нажатии клавиши vuejs - PullRequest
0 голосов
/ 07 октября 2018

Разрешить пользователям вводить значения, например валюта , в текстовое поле с помощью Vue.js

1 Ответ

0 голосов
/ 07 октября 2018

Рабочий пример: https://jsfiddle.net/0s14cbqx/

В шаблоне:

<input placeholder="Name a price" v-model="price" @keypress="onlyForCurrency">

В js:

data(){
   return{
     price:null
   }
},
methods: {
   onlyForCurrency ($event) {
     // console.log($event.keyCode); //keyCodes value
     let keyCode = ($event.keyCode ? $event.keyCode : $event.which);

     // only allow number and one dot
     if ((keyCode < 48 || keyCode > 57) && (keyCode !== 46 || this.price.indexOf('.') != -1)) { // 46 is dot
      $event.preventDefault();
     }

     // restrict to 2 decimal places
     if(this.price!=null && this.price.indexOf(".")>-1 && (this.price.split('.')[1].length > 1)){
     $event.preventDefault();
     }
   }
}

Таким образом, пользователиможет вводить только цифры и одну точку и не может вводить что-либо после 2 десятичных знаков.

...