javascript - 当输入字段无效时,如何使 angularjs 记录默认的 html5 验证消息?
问题描述
所以,我一直在做一个项目,我使用 angularjs 来验证表单输入字段。问题是,当输入字段为空时,我希望 angularjs 记录默认的 html5 验证消息,例如“请填写此字段”。它应该类似于下面的代码:
var x = document.getElementById("myForm");
var y = document.getElementById("email");
var z = document.getElementById("error");
x.addEventListener("submit", (e) => {
if (y.checkValidity() === false) {
e.preventDefault();
z.innerHTML = y.validationMessage;
}
});
body {
background-color: white;
color: black;
font-family: sans-serif;
}
button {
padding: 5px 10px;
cursor: pointer;
}
.error, #error {
color: red;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Email validation example</title>
</head>
<body>
<form id="myForm" action="?" novalidate="">
<label for="email">Email:</label>
<input type="email" id="email" required=""/>
<span class="error">* <span id="error"></span></span>
<br/><br/>
<button type="submit">Submit</button>
</form>
</body>
</html>
A:请注意y.validationMessage
代码中的 javascript 部分。它将默认的 html5 输入验证消息记录到<span>
元素中(如果您运行该片段,那么您可能知道)。
B:我的问题是:有没有办法让 angularjs 像validationMessage
属性一样记录默认的 html5 输入验证消息?
解决方案
你可以试试这样
<form id="myForm">
<label for="email">Email:</label>
<input type="email" id="email" name="email" ng-model="email" required=""/>
<span ng-show="myForm.email.$dirty && myForm.email.$error.required">Email is required.</span>
<br/><br/>
<button type="submit">Submit</button>
</form>
推荐阅读
- java - 缓冲区链接和装饰原理 Java I/O
- svg - Labeled Google Corechart 传说中的问题
- java - Appium 在错误的目录中寻找 java
- docker - Filebeat 无法作为 docker 容器启动
- python - 将列表乘以浮点数?
- c# - 适用于 .NET 可用性的 PageSpeed Insights API V6 客户端库
- angular - 在 angular7 中,如何从 2 个不同的依赖 http 调用中获得组合响应。第一个 http 调用返回一个对象数组和其他相关数据
- node.js - 节点 - 中间件未应用 req 属性
- python - python中对二维列表元素的内存引用是否连续?
- while-loop - 如何在从文件 B 读取值时剪切文件 A 的每第 n 行?