У меня есть 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>
В коде нет ошибок. Но это не работает или не ставит автоматически десятичное число между сотнями или тысячами.
Может кто-нибудь пролить свет на меня? Заранее спасибо.