javascript - JavaScript 中的冷调用 blur() 函数
问题描述
我有一条线
document.getElementById("firstName").addEventListener("blur", validateField);
和 :
validateField = (event) =>
{
const el = event.target;
}
现在我想用form.addEventListener('submit', function(event)
行中的相应元素调用 validateField() 函数。
document.getElementById("firstName").blur(); // This is not getting called.
但是冷调用 blur() 不起作用。
我要做的是在调用表单并且仍然无效时填充引导程序无效消息。
el.classList.add('is-invalid');
el.nextElementSibling.innerHTML = "This field is required";
尽量避免使用 jQuery,因为我可能会将其切换到引导程序版本 5。
解决方案
我确实认为从技术上讲,提交表单没有焦点,除非用户按下回车键提交。另一种方法可能是,您可以尝试专注于其他事情而不是模糊特定事物!
以下代码适用于我。
document.getElementById("frm").addEventListener('submit', function(event) {
event.preventDefault();
document.getElementById("firstName").blur();
});
<form action="" id="frm">
<input type="text" id="firstName" />
<input type="submit" value="Press Enter" />
</form>
但是对于替代解决方案:
document.getElementById("frm").addEventListener('submit', function(event) {
event.preventDefault();
document.getElementById("frm").focus();
});
#frm:focus {
outline: none;
box-shadow: none;
}
<form action="" id="frm" tabindex="0">
<input type="text" id="firstName" />
<input type="submit" value="Press Enter" />
</form>
推荐阅读
- javascript - 正则表达式不匹配在字符串中找不到数字
- javascript - 当对象数组中的属性发生更改时,使用钩子对重新渲染组件做出反应
- hazelcast - get(replicated)map 是加载整个数据还是仅加载参考?
- javascript - 在 ReactJS 上制作强制表格
- angular - 更改 ng2-charts/charts.js 饼图上的标签颜色
- python - 在 Python 中为图像绘制动画
- javascript - for循环内“in”运算符的大O
- class - Dart:基于 JSON 响应创建动态类
- c++ - T&& 和 int&& 之间的根本区别是什么?
- haskell - 使用 Haskell Persistent 在数据库之间复制数据