Javascript event.preventDefault不';我不能正常工作
我现在正在做一个机器人,没什么特别的。只是一些基本的机器人,比如说,每当我输入google时,它就会刷新页面,即使我输入了两个Javascript event.preventDefault不';我不能正常工作,javascript,html,addeventlistener,Javascript,Html,Addeventlistener,我现在正在做一个机器人,没什么特别的。只是一些基本的机器人,比如说,每当我输入google时,它就会刷新页面,即使我输入了两个event.preventDefault()。当我解决这个问题时,它会打开两个选项卡(当键入google时),所以我真的对这个问题感到困惑 JavaScript: var INPUT = document.getElementsByTagName("input")[0]; INPUT.addEventListener("keyup", function(event) {
event.preventDefault()
。当我解决这个问题时,它会打开两个选项卡(当键入google时),所以我真的对这个问题感到困惑
JavaScript:
var INPUT = document.getElementsByTagName("input")[0];
INPUT.addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode === 13) {
document.forms[0].submit();
}
});
function requester(event) {
event.preventDefault();
var valeur = (document.getElementsByTagName("input")[0].value).toString().trim().toLowerCase();
switch (valeur) {
case "date": date(); break;
case "day": day(); break;
case "hour": hour(); break;
case "stop": stopTime(); break;
case "youtube": open("https://www.youtube.ca"); break;
case "google": open("https://www.google.ca"); break;
case "chrono": chrono(); break;
case "refresh": location.reload(); break;
case "my_playlist": open("https://www.youtube.com/playlist?list=PLjhkALRcmTGR2MQ-Y5cMERhq15ieGOqBR"); break;
}
}
HTML:
<form onsubmit="requester(event)">
<input type="text" autocomplete="off" style="font-size:150px;text-transform: uppercase;" autofocus>
</form>
文档。表单[0]。提交()
不会触发提交事件:
直接调用此方法时,不会引发任何submit
事件(特别是表单的onsubmit
事件处理程序未运行),也不会触发约束验证
(来自)
此外,默认表单提交由keydown
触发,而不是由keydup
触发
两个简单的解决方案:
移除keyup
处理程序。默认情况下,在表单字段中按Return将触发submit
事件;您不需要实现任何附加功能
或者,如果您确实想要一个键盘处理程序,请将该处理程序绑定到keydown
,并直接调用requester
,而不是调用.submit()
好的,我尝试了第二种解决方案,但正如我在帖子中所说,当谷歌被输入时,它会打开两个标签,你知道如何解决这个问题吗?哦,糟了。另一个问题是绑定到keyup
。此事件通常不用于任何用途—按键在按下时触发,而不是在释放时触发!您可能希望使用keydown
。