javascript - 使用模糊事件,我如何确保模糊事件在提交按钮之前发生?
问题描述
假设我在输入上写了 Bob,但我仍然专注于输入,然后单击注册。错误不会显示,因为我仍然专注于输入。我的问题是,如何确保在使用常规 javascript 单击提交之前显示错误?
function check(form) {
username = document.querySelector(form).querySelector("input[name=username]")
username.addEventListener('blur', e => {
if (username.value === "Bob") {
const label = document.createElement('label')
label.appendChild(document.createTextNode("Your name cant be bob"))
username.parentNode.insertBefore(label, username.nextSibling)
}
})
}
check("#formTest")
<h2>Registration</h2>
<form action="" id="formTest" name="registration">
<label for="firstname">Username</label>
<input type="text" name="username" /> <br />
<button type="submit">Register</button>
</form>
解决方案
通过使用keyup
事件,它按预期工作。请检查代码片段。
function check(form) {
username = document.querySelector(form).querySelector("input[name=username]")
username.addEventListener('keyup', e => {
if (username.value === "Bob") {
const label = document.createElement('label')
label.appendChild(document.createTextNode("Your name cant be bob"))
username.parentNode.insertBefore(label, username.nextSibling)
}
})
}
check("#formTest")
<h2>Registration</h2>
<form action="" id="formTest" name="registration">
<label for="firstname">Username</label>
<input type="text" name="username" /> <br />
<button type="submit">Register</button>
</form>
推荐阅读
- python - 将csv转换为熊猫
- javascript - 如何为此javascript代码创建自动循环?
- c++ - 无法使用静态库在 linux 远程项目上重建:错误 MS8012,Visual Studio 2019
- javascript - javascript fetch函数获取语法错误
- azure-service-fabric - Service Fabric 更改应用程序计数,而无需重新部署整个程序包
- matlab - 如何修复 mex 文件中的非法字符错误
- swift - 这可以在控制器中定期执行测试吗?
- excel - 数据源开始和结束范围变量
- javascript - HTML/JavaScript:提交表单时如何使用警报(使用查询选择器)?
- python - 从串行连接中获取 b'\x08'b'\x9e'b'\x1d' 或 b'\xe0'b'\xe0'b' 错误