html - Angular 4 启用 HTML5 验证

标签 html angular

我想在 Angular 4 中使用 HTML5 验证,而不是他们基于表单的验证/响应式(Reactive)验证。我想让验证在浏览器中运行。

它曾经在 Angular 2 中工作,但自从我升级后,如果没有任何使用 HTML5 进行验证的 Angular Directive(指令),我什至无法获得手动创建的表单。

例如,这根本不会在浏览器中验证:

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

最佳答案

Angular4 自动为表单添加一个 novalidate 属性。

enter image description here

要覆盖它,您可以将 ngNativeValidate 指令添加到表单。

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

不幸的是,我还没有在文档中看到这一点,但通过查看源代码发现了这一点: https://github.com/angular/angular/blob/master/packages/forms/src/directives/ng_no_validate_directive.ts

添加 ngNoForm 到表单似乎与 ngNativeValidate 具有相同的效果,具体取决于您出于任何原因需要将某些内容声明为非表单的用例。

希望这对您有所帮助。

关于html - Angular 4 启用 HTML5 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43189364/

相关文章:

javascript - JQuery 从引导下拉菜单中获取值

javascript - 使用 Javascript 在运行时禁用 <a href>

javascript - 定位 jquery 更改的来源

angular - Meteor 不渲染 html 模板,只渲染路径

angular - 如何在 Angular 7 中使用路由器获取域名

angular - 如何使用 RXJS Observables 轮询服务?

javascript - Canvas html5 中的透明 context.fill 样式

html - wordpress 中的多种谷歌字体无法正常工作

angular - node_modules/xterm/typings/xterm.d.ts(10,1) : error TS1084: Invalid 'reference' directive syntax 中出现错误

Angular2 从 HTML 模板访问全局变量