Solución:
La respuesta de @Fredrik es correcta.
Angular agrega el novalidate
atribuir a sus formularios automáticamente cuando se utiliza el enfoque basado en plantillas. Es por eso que no se le impide enviar.
Pero si desea la validación del navegador, agregue ngNativeValidate
atributo en su forma.
<form ngNativeValidate>
<input type="text" name="projectName" [(ngModel)]='projectName' required >
<input type="submit" value="submit" />
<form>
Las respuestas anteriores son correctas, solo tiene que agregar ngNativeValidate
a la etiqueta de formulario. Me gustaría agregar que si desea que el botón enviar no realice el (click)
acción cuando el formulario no es válido, utilice form.checkValidity()
<form ngNativeValidate #form >
<input type="text" required/>
<button name="submit" type="submit" (click)="form.checkValidity()? login() : null">
Sign In
</button>
</form>
Angular agrega el novalidate
atribuir a sus formularios automáticamente cuando se utiliza el enfoque basado en plantillas. Es por eso que no se le impide enviar.
Puedes usar form.valid
para ver si todo el formulario es válido, y luego cree su propia lógica sobre cómo quiere manejarlo.