Ionic 3 угловая обработка ввода валюты - PullRequest
0 голосов
/ 30 октября 2018

У меня есть Ionic 3 App , где я хочу отформатировать все поля ввода валюты формальным способом. Если я введу 10 000, оно должно отобразиться в поле следующим образом: PHP 10 000,00 , а если сотни, то должно отобразиться так: PHP 100,00 .

Я также хочу обработать кнопку возврата или возврата в Ionic при вводе поля, чтобы я мог обработать это в Android или iOS , которую я не мог найти в Google, чтобы найти некоторые решения или ответ.

Я уже нашел ссылку в jQuery стиле с jsfiddle на нем.

Но когда я перевёл код в Angular / Ionic , он не решил мою проблему.

Вот мой код ниже в моем файле TS

handleCurrency(e) {
    console.log(e)
    if (e.keyCode == 8 && this.form.value.amount.length > 0) {
      this.form.value.amount = this.form.value.amount.slice(0, this.form.value.amount.length - 1); //remove last digit
      this.form.value.amount = this.formatNumber(this.form.value.amount);
    }
    else {
      let key = this.getKeyValue(e.keyCode);
      if (key) {
        this.form.value.amount += key; //add actual digit to the input string
        this.form.value.amount = this.formatNumber(this.form.value.amount); //format input string and set the input box value to it
      }
    }
    // return false;
  }

  getKeyValue(keyCode) {
    if (keyCode > 57) { //also check for numpad keys
      keyCode -= 48;
    }
    if (keyCode >= 48 && keyCode <= 57) {
      return String.fromCharCode(keyCode);
    }
  }

  formatNumber(input) {
    if (isNaN(parseFloat(input))) {
      return "0.00"; //if the input is invalid just set the value to 0.00
    }
    let num = parseFloat(input);
    return (num / 100).toFixed(2); //move the decimal up to places return a X.00 format
  }

и по моему html

  <ion-input type="number" formControlName="amount" min="0.01" step="0.01" value="0.00" (keypress)="handleCurrency($event)"  placeholder=""></ion-input>

В коде нет ошибок. Но это не работает или не ставит автоматически десятичное число между сотнями или тысячами.

Может кто-нибудь пролить свет на меня? Заранее спасибо.

1 Ответ

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

Я нашел пакет, который решил мою проблему. Я использовал ng2-currency-mask , чтобы установить желаемый формат валюты. Но все еще была проблема с клавишей Backspace или кнопкой очистки на на Android и iOS на том, как с этим справиться. По умолчанию всегда возвращается 229 keyCode

...