Ionic 3, ограничение количества десятичных символов на входе иона - PullRequest
0 голосов
/ 17 октября 2018

Я создал пользовательский компонент ввода, в котором у меня есть @Input ('numberOfDecimals');Поэтому, используя эту информацию, я хочу ограничить количество десятичных символов, вводимых пользователем в компонент ввода.

Таким образом, если числоOfDecimals равно 2 и когда пользователь вводит 2,55, он не должен иметь возможность добавить еще один номер.

Я пытался (onkeypress) (onkeyup) (onkeydown), используя event.preventDefault (), но все еще на телефоне Android метод protectDefault не применяется и также возвращает false.

ЕслиЯ использую onkeydown и переписываю this.value элемента input, а затем, когда я пытаюсь удалить последнюю цифру, он ничего не делает.

также возвращение из этих методов не имеет никакого эффекта.

Вот пример кода: пользовательский компонент: <input (input)="change($event)" role="input" tabindex="1" contenteditable="true" #inputElement [ngClass]="{'input-invalid': regExError === true || invalid === true,'input-valid': valid === true}" (keyup)="onKeyUp($event)" (keydown)="onKeyDown($event)" [attr.inputmode]="inputMode" [attr.decimal]="decimalsEnabled" pattern="{{inputPattern}}">

и код .ts:

@Input('numberOfDecimal') numberOfDecimal: number = 0;
onKeyDown(event: any) {
    let value = event.target.value;
    if (this.validateDecimalInput(value)) {
        event.preventDefault();
        return false;            
    }
}

validateDecimalInput(value): boolean {
    if (this.decimalsEnabled && this.numberOfDecimal !== 0 && value !== '') {
        let currentValue = this.value.split('.');
        if (currentValue[1] !== undefined && currentValue[1].length > (this.numberOfDecimal - 1)) {
            return true;
        }
    }

    return false;
}

`

Как я уже упоминал, яперепробовал много опций ... onKeyUp разбирает событие .. проверяет код ключа, но он отличается на телефоне Android ... так что вы не можете запустить regEx.

Какие-либо решения?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...