2017-04-07 15 views
6

Po migracji do kanciastego 4 wystąpił dziwny problem z moją szablonową formą. Moje wejście required wydaje się być uszkodzone. Domyślnie jest to atrybut novalidate. Ale potrzebuję sprawdzania poprawności html5. Wypróbowałem novalidate="false", ale nie odniosłem sukcesu. Czy jest jakiś sposób włączenia sprawdzania poprawności? Teraz wydaje się, że używanie reaktywnych formularzy ze swoim Validators.required jest jedynym sposobem.atrybut atypu kątowego 4.0.0

Dzięki!

Mój kod HTML komponent urywek:

<form (submit)="savePhone(phone);" novalidate="false"> 
<h3>Новый телефон</h3> 
<md-input-container> 
    <input mdInput placeholder="Номер телефона" 
      onlyNumber="true" name="number" 
      [(ngModel)]="phone.number" required> 
</md-input-container> 
<md-select placeholder="Источник получения" (ngModel)="phone.source" name="source"> 
    <md-option *ngFor="let source of sources" [value]="source"> 
     {{ source }} 
    </md-option> 
</md-select> 
<textarea name="comment" placeholder="Текст комментария" 
      [(ngModel)]="phone.comment" name="comment"> 
</textarea> 
<div layout="row" layout-align="end"> 
    <button class="button button--success" type="submit"> 
     Добавить 
    </button> 
</div> 

Odpowiedz

14

Aby umożliwić korzystanie HTML5 walidacja

<form (submit)="savePhone(phone);" ngNativeValidate> 

Zobacz również NgNoValidate source at GitHub

+0

Dziękuję, człowieku! Działa jak marzenie! –

+2

Opracowanie: Angular4 automatycznie dodaje 'novalidate' w ngForm (tag formularza) domyślnie. Jak wiemy, 'novalidate' wyłącza sprawdzanie oryginalności przeglądarki HTML5. Jeśli chcesz włączyć sprawdzanie poprawności HTML5, jak powiedział @ Günter, dodaj atrybut 'ngNativeValidate' firmy Angular do tagu formularza. Ref: https://github.com/angular/angular/issues/15531 –

Powiązane problemy