javascript - 为什么我尝试向表中添加新行(使用 oa 表元素制作)不断出现和消失?
问题描述
我正在尝试用 Javascript 制作一个不使用table
元素的表格,并且我使用的是纯 vanilla nodeJS。我可以让一个新行非常短暂地出现,但是当我点击让它首先出现的按钮时它就会消失。我的代码是:
<!DOCTYPE html>
<html>
<body>
<h1> Title Tests </h1>
<div id="Experiments">
<form id="Exp">
<input type="text" name="url box" placeholder="publisher URL"><br>
<div class="Title">
<input type="text" name="title box" placeholder="Test Title"><br>
</div>
<button id="addButton" onclick="newRow()">+</button><br>
<input type=submit value="Submit">
</form>
</div>
<script>
function newRow(){
var number = 2;
var newTitleRow = document.createElement('div');
newTitleRow.setAttribute('id',`Title${number}`);
var newBT = document.createElement('input');
newBT.setAttribute('type','text');
newBT.setAttribute('name',`title box ${number}`);
newBT.setAttribute('placeholder','Test Title');
newTitleRow.appendChild(newBT)
var button = document.querySelector("#addButton");
button.before(newTitleRow);
number++;
}
</script>
</body>
</html>
解决方案
问题是您在元素中使用了<button>
html <form>
。这意味着它将自动充当提交按钮,除非您将其声明为不同的东西。因此,只要您按下+按钮,它就会尝试将表单提交到未定义的 URL。
要解决此问题,您需要将该+按钮定义为“按钮”类型,例如:
<button type="button" id="addButton" onclick="newRow()">+</button><br>
推荐阅读
- mysql - 如何将来自 MySQL 中不同行的数据添加到一起?
- docker - 如果我在 Dockerfile 中使用 env var,那么 env var 是否会烘焙到图像中?
- python - 从指定索引处的字符串列表中删除不需要的子字符串
- excel - 循环工作表 - 隐藏不连续的列
- android - 永远不会调用 MediaSession 回调
- css - CSS:如果没有标签,如何使用 :not(a) ?
- elasticsearch - 如何在弹性搜索文档中获取嵌套对象的不同键?
- css - CSS 浏览器不一致:居中弹性框内的 abs 元素的边距
- ios - 将动作添加到后滑动 Swift 5
- c# - 带有 xampp 的路径“localhost”