Backspace не работает в Firefox Angular 2 - PullRequest
0 голосов
/ 07 июня 2019

У меня есть поле ввода (введите текст), и я должен избегать ввода там каких-либо символов без чисел.Также поле ограничено 4 числами (это поле года).Когда я получил его, поле не позволяет использовать клавишу возврата или удалить клавишу с клавиатуры.

Я пробовал несколько решений на этой странице, но ни одно из них не работает для меня.

Я думаю, что проблема связана с ограничением поля только для номера , потому что, если я уберу эту опцию, ключи backspace и delete отлично работает!

.html:

<tab heading="{{'Ressources du Foyer' | uppercase}}" [disabled]="!isEdit || !isODP">
                <table [defaultElemPerPage]="999" [data]="dataRessources" [config]="configRessources" [columns]="columnsRessources"
                    [showElementsPerPageSet]="false" [showItemNumberInfo]="false" [doHover]="false" [doClick]="false" [showActionsHeader]="!modeConsultation">
                    <template let-data>
                        <p class="text-center" *ngIf=!modeConsultation>
                            <a (click)="addRowLineRessources(data.index)" class="purple-icon" *ngIf="data.last" title="Ajouter une ligne"><span class="glyphicon glyphicon-plus"></span></a>
                            <a (click)="removeRowLineRessources(data.index)" title="Supprimer une ligne"><span class="purple-icon glyphicon glyphicon-trash"></span></a>
                        </p>
                    </template>
                </table>
            </tab>

Файл .ts:

anneeReference: this.createStandardComponentService.createInputText({
        id: 'anneeReference',
        type: 'text',
        disabled: false,
        group: group.get('anneeReference'),
        errors: this.errors.anneeReference,
        outputMethod: this.validYear,
        maxlength: 4
      }),

validYear(event: any) {
    const pattern = Constants.NUMBERS_PATTERN;
    const codeCle = event.keyCode;
    const inputChar = String.fromCharCode(event.charCode);
    if (!pattern.test(inputChar) && (codeCle !== Constants.BACKSPACE_TOUCHE || codeCle !== Constants.DELETE_TOUCHE)) {
      event.preventDefault();
    }
  }

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

1 Ответ

0 голосов
/ 14 июня 2019

Я решаю эту ошибку другим решением , удаляя фильтр, который запрещает нам добавлять любой символ не числовой (до того, как он будет принят клиентом, потому что это изменение указанных спецификаций).

Как бы то ни было, это могло бы стать другим решением для Форума Mozilla *1009*.

...