angular 4.0.0 novalidate属性

Mik*_*sky 11 html javascript forms html5 angular

迁移到角度4后,我的模板驱动表单出现了一个奇怪的问题.我required输入的attr似乎被打破了.我想novalidate默认情况下有属性.但我需要一些html5验证.试过novalidate="false"但没有成功.有没有办法启用验证?现在似乎使用反应形式Validators.required是唯一的方法.

谢谢!

我的HTML组件代码段:

<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>
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 26

要启用HTML5验证,请使用

<form (submit)="savePhone(phone);" ngNativeValidate>
Run Code Online (Sandbox Code Playgroud)

另请参阅GitHub上的NgNoValidate源代码

  • 详细说明:默认情况下,Angular4会自动在ngForm(您的表单标签)中添加"novalidate".我们知道,`novalidate`会禁用HTML5本机浏览器验证.如果要启用HTML5验证,正如@Günter所说,在表单标记中添加Angular的`ngNativeValidate`属性.参考:https://github.com/angular/angular/issues/15531 (3认同)