javascript - 为什么这段代码没有运行?它没有返回简单的警报
问题描述
这是一个相当短而直接的代码。它等待提交并在发生时提醒“成功”。但是什么都没有发生,也没有显示错误。我尝试过做一些细微的变化并使用箭头功能,但似乎没有任何效果。我对 Java 还很陌生,我写的很多代码都有错误,但是这段代码似乎太简单了,没有错误。
下面是 JavaScript:
const form = document.querySelector('.form');
function onSubmit(e){
e.preventDefualt();
alert('sucess');
}
form.addEventListener('submit', onSubmit) ;
html
<!DOCTYPE html>
<html>
<head>
<script src="https://kit.fontawesome.com/f52626a245.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="styles.css">
<title>April 26</title>
</head>
<body>
<!--Main-Container-->
<div class="container">
<!--arrow buttons left-->
<div class="buTTon">
<button id="prev"><i class="fas fa-arrow-left"></i></button>
</div>
<!--Image Slide-->
<div class="Functs">
<!--Form Slide-->
<div class="slide current">
<div class="form">
<!--Asks for name-->
<label for="name">Enter Name</label>
<input type="text" id="name">
<br>
<br>
<!--Asks for email-->
<label for="eMail">Enter Email</label>
<input type="text" id="eMail">
<br>
<br>
<!--Submit Button-->
<button id="submit">Submit</button>
<!--Displays List-->
<br>
<br>
<label for="list">List of Users</label>
<input type="text" id="list">
</div>
</div>
<!--Array slide-->
<div class="slide"></div>
<div class="slide"></div>
<!--Calculator Slide-->
<div class="slide ">
<!--Calculator Algorithm-->
<div class="calculator">
<!--Grabs first number-->
<label for="num1">First Number</label>
<input type="number" id="num1" size="5">
<!--Grabs Second number-->
<label for="num2">Second Number</label>
<input type="number" id="num2" size="5">
<!--Enter Button-->
<button id="btn">Enter</button>
<!--Result-->
<input type="number" id="result">
</div>
</div>
</div>
<!--arrow buttons right-->
<div class="buTTon">
</i></button>
<button id="next"><i class="fas fa-arrow-right"></i></button>
</div>
</div>
</body>
<script src="main.js"></script>
</html>
css
body{
margin: 0;
background-color: aliceblue;
}
.container {
margin-top: 0;
position: absolute;
overflow:hidden;
margin-right: 0;
background:rgb(55, 90, 207);
height:100vh;
width: 100%;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
align-items: center;
}
.slide.current{
position: relative;
background: grey;
height: 50vh;
width: 60%;
margin:10vw 25vh;
display: flex;
justify-content: space-around;
align-items: center;
margin-right: 40vw;
}
.calculator{
background: green;
height:40vh;
width: 30vh;
padding: 5%;
line-height: 1.6em;
font-family: Georgia, 'Times New Roman', Times, serif ;
color: wheat;
}
.form{
background: green;
height:40vh;
width: 30vh;
padding: 5%;
line-height: 1.6em;
font-family: Georgia, 'Times New Roman', Times, serif ;
color: wheat;
}
.buTTon{
position: relative;
height: 40vh;
width: auto;
background:transparent;
margin-left: 20%;
display: flex;
justify-content: center;
align-items:center ;
}
#prev:hover, #next:hover{
background: white;
width: 60px;
height: 60px;
}
#prev, #next{
width:50px ;
height: 50px;
border-radius: 50%;
background:whitesmoke;
opacity: 0.7;
font-size: large;
}
.slide{
display: none;
}
/*for smaller screens*/
@media only screen and (max-width: 700px) and (min-width: 500px) {
.container {background: turquoise;
width: fit-content;
block-size: fit-content;
grid-template-columns: 4fr 1fr 4fr;
overflow: auto;
}
.slide.current {
width: 50%;
}
.buTTon{
position: relative;
height: 40vh;
width: fit-content;
block-size: fit-content;
}
#next{
position: absolute;
right:10px
}
#prev{
position: absolute;
left:10px
}
}
/*for medium screen*/
@media only screen and (min-width: 700px) and (max-width:900px) {
.container {background:red;
width: fit-content;
block-size: fit-content;
grid-template-columns: 1fr 1fr 1fr;
overflow: auto;
}
.slide.current {
width: 50%;
}
.slide {
width: 50%;
}
#next{
position: absolute;
right:10px
}
#prev{
position: absolute;
left:10px
}
}
@media only screen and (max-width:500px) {
body{
background: tomato;
}
.container {background:orange;
width: 100vw;
grid-template-columns: 1fr 2fr 1fr;
overflow: hidden;
}
.slide.current {
width: 80vw;
right:23vw;
}
.slide {
width: 20%;
}
#next{
position: absolute;
margin-right:-3rem;
}
#prev{
position: absolute;
margin-right: 0;
}
const form = document.querySelector('.form');
const submit =document.querySelector('.submit')
function onSubmit(e){
e.preventDefualt();
alert('sucess');
}
form.addEventListener('submit', onSubmit) ;
解决方案
<div class="form">
提交事件不会在 div 元素上触发,只会在表单元素上触发。
推荐阅读
- python - 随着阶数的增加,巴特沃斯滤波器看起来很奇怪
- haskell - 什么是“你调用的函数”,什么是“调用你的函数”?
- python - 如何知道列表中的元素是否在另一个列表中
- excel - 无法获取 WorksheetFunction 类的 SumProduct 属性
- r - Webscraping 具有可变长度的 html 表 - 在构建数据框时,如何确保我的数据最终出现在正确的列中?
- mule - Mulesoft dataweave 中的 15 天规则
- angular - Angular - 从其他组件刷新组件:子到父然后父到另一个子通信
- javascript - 有人键入特定消息后如何踢某个用户
- jupyter - 如何以有限的权限共享 Google Colab 笔记本
- excel - 根据列值是否在表中返回行的分数