2017-04-07 6 views
6

アングル4に移行した後、テンプレート駆動型の奇妙な問題が発生しました。私のrequired入力にattrが壊れているようです。私はそれがデフォルトでnovalidate属性を持っていると思います。しかし、html5検証が必要です。試しましたnovalidate="false"しかし成功はありませんでした。 検証を有効にする方法はありますか?今ではそれがとの反応形式を使用しているようです唯一の方法です。angular 4.0.0 novalidateアトリビュート

ありがとうございます!

私のHTMLコンポーネントのコードスニペット:HTML5の検証使用を有効にするには

<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> 

答えて

14

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

NgNoValidate source at GitHub

+0

は、男をありがとうも参照してください!魅力的な作品! –

+2

詳細:Angular4はデフォルトでngForm(あなたのフォームタグ)に 'novalidate'を自動的に追加します。わかっているように、 'novalidate'はHTML5ネイティブブラウザの検証を無効にします。 @Günterが述べたように、HTML5の検証を有効にするには、フォームタグにAngularの 'ngNativeValidate'属性を追加します。 Ref:https://github.com/angular/angular/issues/15531 –

関連する問題