Как добавить событие клика внутри тегов формы

Я создаю форму angular2 в машинописном тексте, используя ionic,

.html

<form (ngSubmit)="verify(form)" #form="ngForm">
<ion-input type="text" name="data" #number="ngModel" maxlength='4" [(ngModel)]="digits"></ion-input>
<span *ngIf="number.dirty && form.submitted && form.value.number<4">Enter all numbers</span>
<span *ngIf="number.pristine && form.submitted">Enter number</span>

<button (click)="doAgain()">Click Again</button>

<button type="submit">Verify</button>
</form>

Проблема1: когда я нажимаю кнопку "Нажмите еще раз", отображается сообщение об ошибке в виде "Введите число", которое я не хочу отображать, а также запускает функцию verify ().

Обновление: Проблема2. Мое требование состоит в том, что мне нужны только числа для ввода в текстовое поле, а не алфавиты и специальные символы, такие как 'a', 'b', '@'. Таким образом, с приведенной выше реализацией поле ввода получает b c d и @ # $ и 1 2 3 что угодно. Я хочу ограничить его только числом. Я знаю это, потому что предоставил атрибут как type = "text", поэтому он действует таким образом. Поскольку я перешел на type = "number", я достиг цели, но количество символов, принимаемых в поле ввода, превышает мою максимальную длину, равную 4.


person Aditya    schedule 20.01.2018    source источник
comment
Вы можете объяснить свою проблему 2. как какой именно размер числа вам нужен?   -  person Abhishek Ekaanth    schedule 20.01.2018
comment
Мне нужны только 4-значные числа, пользователь не может ввести 5-ю цифру, если введены четыре цифры   -  person Aditya    schedule 20.01.2018
comment
в .ts для каждой функции нажатия клавиш вы можете поместить условие if, например ( key >= 96 && key <= 105 ), разрешит только числа.   -  person Abhishek Ekaanth    schedule 20.01.2018
comment
можешь объяснить это в ответе?   -  person Aditya    schedule 20.01.2018


Ответы (2)


Вы должны добавить type кнопки

<button (click)="doAgain()" type='button'>Click Again</button>

Поскольку ngSubmit будет запущен при нажатии любой кнопки внутри группы форм. Чтобы отличать кнопку submit от других кнопок, мы используем type

Подробнее об этом читайте здесь

person Aravind    schedule 20.01.2018
comment
вау решено, не могли бы вы ответить и на проблему 2, чтобы я мог принять ваш ответ? - person Aditya; 20.01.2018
comment
@ Адитья рад помочь тебе :) Что-нибудь еще тебе нужно? - person Aravind; 20.01.2018
comment
нет, я недоступен в teamviewer, я могу объяснить вам, отредактировав свой ответ на проблему 2. Минуту - person Aditya; 20.01.2018
comment
надеюсь, у тебя это есть? - person Aditya; 20.01.2018
comment
У тебя моя проблема 2 @Aravind - person Aditya; 20.01.2018
comment
Позвольте нам продолжить это обсуждение в чате. - person Aravind; 20.01.2018

Вы можете добавить type = "tel" в поле ввода,

<ion-input type="tel" name="data" #number="ngModel" maxlength="4" [(ngModel)]="digits"></ion-input>
person AddWeb Solution Pvt Ltd    schedule 20.01.2018