Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用模糊事件,如何确保模糊事件在提交按钮之前发生?_Javascript - Fatal编程技术网

Javascript 使用模糊事件,如何确保模糊事件在提交按钮之前发生?

Javascript 使用模糊事件,如何确保模糊事件在提交按钮之前发生?,javascript,Javascript,假设我在输入上写Bob,但我仍然专注于输入,然后单击register。错误不会显示,因为我仍然专注于输入。我的问题是,如何确保在使用常规javascript单击submit之前显示错误 功能检查(表单){ username=document.querySelector(表单).querySelector(“输入[name=username]”) username.addEventListener('blur',e=>{ 如果(username.value==“Bob”){ const labe

假设我在输入上写Bob,但我仍然专注于输入,然后单击register。错误不会显示,因为我仍然专注于输入。我的问题是,如何确保在使用常规javascript单击submit之前显示错误

功能检查(表单){
username=document.querySelector(表单).querySelector(“输入[name=username]”)
username.addEventListener('blur',e=>{
如果(username.value==“Bob”){
const label=document.createElement('label')
label.appendChild(document.createTextNode(“您的名字不能是bob”))
username.parentNode.insertBefore(标签,username.nextSibling)
}
})
}
检查(“#formTest”)
注册
用户名

登记
您在此实例中使用了错误的事件侦听器。您可能希望使用
keyup
而不是
blur
。我也看不到你在哪里调用
check()代码中的任意位置

编辑:对不起,我引用了
keydown
,但在能够正确测试
keydup
后,您需要的值是
取消匿名并重新使用

在使用动态生成的错误时,这一点非常重要

let表单,用户名;
const testBob=e=>{e.preventDefault()
let error=document.getElementById(“error”);
if(error)error.style.display=“无”;
如果(username.value==“Bob”){
error=document.getElementById(“error”)| | document.createElement(“标签”)
如果(!error.id){
error.id=“error”;
error.appendChild(document.createTextNode(“您的名字不能是bob”))
username.parentNode.insertBefore(错误,username.nextSibling)
}
如果(e.type==“提交”)e.preventDefault()
error.style.display=“”;
}
};
addEventListener(“加载”,函数(){
表单=document.querySelector(#formTest)
username=form.querySelector(“输入[name=username]”)
username.addEventListener('blur',testBob)
表单.addEventListener('submit',testBob)
});
注册
用户名

登记
通过使用
keyup
事件,它正在按预期工作。请检查代码片段

功能检查(表单){
username=document.querySelector(表单).querySelector(“输入[name=username]”)
username.addEventListener('keyup',e=>{
如果(username.value==“Bob”){
const label=document.createElement('label')
label.appendChild(document.createTextNode(“您的名字不能是bob”))
username.parentNode.insertBefore(标签,username.nextSibling)
}
})
}
检查(“#formTest”)
注册
用户名

登记
我给你写了一个片段。请添加执行
check()
取消匿名化函数的位置,并在提交时调用该函数blur@mplungjan做这件事。我会在其中添加
toLowerCase()
,检查username是否等于bob。但是如果他使用
keyup
如果你使用keyup/keydown(我将使用“输入”事件),那么当输入Bobby tooYes时,错误将出现/闪烁,并在编辑@jimmyjimmy后查看我的编辑