HTML5 自定义检查的约束验证
HTML5 constraint validation for custom check
我想检查用户名和电子邮件地址在客户端是否唯一。
有没有办法为约束验证添加自定义验证?
或者有其他推荐的方法吗?
我假设我必须发送 async http 请求(我在服务器端使用 node js)但是我想遵循这个的最佳实践。
您可以对输入的模糊请求来检查用户在输入中写入的内容是否唯一,并用复选标记或红色 X 向用户显示结果
或者你可以在用户点击注册按钮后显示,但我更喜欢第一个解决方案
是的,您可以使用来自约束验证 api 的 setCustomValidity
函数,它是每个表单字段(例如 HTMLInputElement)的一部分。
<input name="username">
<script>
const field = document.querySelector('[name="username"]');
field.addEventListener('change', () => {
fetch('https://example.com/myapiforcheckingusername' {
method:'POST',
body: JSON.stringify({username: field.value})
}).then((response) => {
const alreadyExists = // process response to check if username already exists
if (alreadyExists) {
field.setCustomValidity('The username already exists!');
}
});
});
</script>
以上代码显示了如何对输入字段进行异步验证。如果 setCustomValidity
不是空字符串,则表示这是一个表单错误。如果 checkValidity
在随附的表格上调用 returns false
那么。
您可以查看 MDN documentation 以获取有关此问题的更多示例。
我想检查用户名和电子邮件地址在客户端是否唯一。
有没有办法为约束验证添加自定义验证?
或者有其他推荐的方法吗?
我假设我必须发送 async http 请求(我在服务器端使用 node js)但是我想遵循这个的最佳实践。
您可以对输入的模糊请求来检查用户在输入中写入的内容是否唯一,并用复选标记或红色 X 向用户显示结果 或者你可以在用户点击注册按钮后显示,但我更喜欢第一个解决方案
是的,您可以使用来自约束验证 api 的 setCustomValidity
函数,它是每个表单字段(例如 HTMLInputElement)的一部分。
<input name="username">
<script>
const field = document.querySelector('[name="username"]');
field.addEventListener('change', () => {
fetch('https://example.com/myapiforcheckingusername' {
method:'POST',
body: JSON.stringify({username: field.value})
}).then((response) => {
const alreadyExists = // process response to check if username already exists
if (alreadyExists) {
field.setCustomValidity('The username already exists!');
}
});
});
</script>
以上代码显示了如何对输入字段进行异步验证。如果 setCustomValidity
不是空字符串,则表示这是一个表单错误。如果 checkValidity
在随附的表格上调用 returns false
那么。
您可以查看 MDN documentation 以获取有关此问题的更多示例。