javascript - 带有 preventDefault 的简单表单不起作用(没有任何 jquery)
问题描述
我有一个简单的 html 表单和 Javascript。我一直在试图阻止表单提交。但它忽略了我的代码e.preventDefault()
并继续提交并刷新页面。
我遇到的大多数解决方案都包括 JQuery。没有 JQuery 就不能做到这一点吗?
为什么这不起作用?问题是什么?
<html>
<head>
<script>
function onsubmit(e) {
e.preventDefault();
e.stopPropagation();
console.log("submitting...");
return false;
}
</script>
</head>
<body>
<form method="POST" onsubmit="onsubmit">
<input placeholder="email" style="display:block"> </input>
<input placeholder="password" style="display:block"> </input>
<input type="submit" value="login" style="display:block"> </input>
</form>
</body>
</html>
解决方案
尽管我不知道内联事件侦听器不起作用的原因,正如@teemu 在评论中所建议的那样,但当我丢弃内联onsubmit
事件侦听器并使用addEventListener
.
document.addEventListener("DOMContentLoaded", (e)=>{
document.querySelector("form").addEventListener("submit", onsubmit);
}
将其添加到 中<script>
,并且有效
推荐阅读
- c# - 如何重新架构我的模型类型以减少代码复制
- python - 散景:jupyter 实验室中的重复绘图会增加(浏览器)内存使用量
- lua - 如何检查 lua 函数调用中的参数类型?
- javascript - 我如何在 Java 中使用 log,就像在 javascript 中的 console.log() 一样?
- python - How to require dependent drop down whenever there are options to choose from in Django?
- javascript - Get 16 bit output audio using AudioContext
- c# - Xamarin Forms Android Web View with CustomWebViewClient stops working after loading certain site
- java - 创建新实体时获取连接表
- qt - QML ListView contentHeight 属性值不正确
- google-sheets - 将 Google 表单上的两个响应之一设为可点击