2017-04-03 2 views
14

Ich möchte die HTML5-Validierung in Angular 4 verwenden und nicht auf ihre formularbasierte Validierung/reaktive Validierung. Ich möchte die Validierung im Browser laufen lassen.Angular 4 HTML5-Validierung aktivieren

Früher arbeitete es in Angular 2, aber seit ich aktualisiert habe, kann ich nicht einmal manuell erstellte Formulare ohne irgendwelche eckigen Anweisungen zur Validierung mit HTML5 bekommen.

Zum Beispiel wird dies nicht in dem Browser validieren:

<form> 
<h2>Phone Number Validation</h2> 
<label for="phonenum">Phone Number (format: xxxx-xxx-xxxx):</label><br /> 
<input id="phonenum" type="tel" pattern="^\d{4}-\d{3}-\d{4}$" required> 

<input type="submit" value="Submit"> 

</form> 

Antwort

28

Angular4 fügt automatisch ein novalidate Attribut Formen.

enter image description here

dieses außer Kraft zu setzen, können Sie die ngNativeValidate Richtlinie zum Formular hinzufügen.

<form ngNativeValidate> 
<h2>Phone Number Validation</h2> 
<label for="phonenum">Phone Number (format: xxxx-xxx-xxxx):</label><br /> 
<input id="phonenum" type="tel" pattern="^\d{4}-\d{3}-\d{4}$" required> 

<input type="submit" value="Submit"> 

</form> 

Leider kann ich nicht sehen, das noch in der Dokumentation wider, sondern fand es durch den Quellcode suchen: https://github.com/angular/angular/blob/master/packages/forms/src/directives/ng_no_validate_directive.ts

Es ist auch ngNoForm zum Formular hinzugefügt scheint hat die gleiche Wirkung wie ngNativeValidate je auf Ihren Use-Cases, weil Sie aus irgendeinem Grund etwas als Nicht-Form deklarieren müssen.

Hoffe, das hilft.

+1

Spot on; funktioniert super danke! – Magn3s1um

+0

Ich bin froh, Ihnen helfen zu können. –

+0

Rette mein Leben! –

0

Verwendung ngNoForm oder ngNativeValidate in Ihrem Formular

<form ngNoForm/ngNativeValidate> 
... 
</form>