我用 JS 添加了一行,但是 seconds/miliseconds 之后它立即被删除,控制台日志也没有显示错误
I added a row using JS, but it gets immediately deleted after a few seconds/miliseconds, the console log also shows no error
所以,我做了两个table,一个table里面有一个表格,你可以在那个表格里输入你想要的任何东西,然后它就会显示在另一个table.
<table>
<head>
<tr>
<th>Product Name</th>
<th>Product Price</th>
<th>Product Quantity</th>
<th>Product Barcode</th>
</tr>
</thead>
<tbody>
<tr>
<form id="input">
<td><input class="userinput" id="productname" type="text" placeholder="Product Name"></td>
<td><input class="userinput" id="productprice" type="text" placeholder="Product Price"></td>
<td><input class="userinput" id="productquantity" type="number" placeholder="Product Quantity"></td>
<td><input class="userinput" id="productcode" type="number" placeholder="Product Barcode"></td>
<td><button>Add Products</button></td>
</form>
</tr>
</tbody>
</table>
用户将在此 table 中输入数据,数据将显示在 table 2 中,即:
<table id="products">
<thead>
<tr>
<th>Product Name</th>
<th>Product Price</th>
<th>Product Quantity</th>
<th>Product Barcode</th>
</tr>
</thead>
<tbody id="plist">
<tr>
<td> product name 1</td>
<td>product price 1</td>
<td>product quantity 1</td>
<td>product bardcode 1</td>
</tr>
</tbody>
</table>
这里使用的JS代码是:
<script>
const formel = document.querySelector('#input');
const tableel=document.querySelector('#plist');
function addRow(e){
e.preventDefault;
const pname = document.getElementById('productname').value;
const pprice = document.getElementById('productprice').value;
const pquan = document.getElementById('productquantity').value;
const pcode = document.getElementById('productcode').value;
tableel.innerHTML+= `
<tr>
<td>${pname}</td>
<td>${pprice}</td>
<td>${pquan}</td>
<td>${pcode}</td>
</tr>
`;
}
formel.addEventListener("submit", addRow)
</script>
项目添加了几个 seconds/millions,立即被删除。我尝试检查控制台,它没有显示任何错误。
我是javascript的新手,老实说,我通过观看各种YouTube视频获得了js代码,但我不明白为什么table行添加后立即被删除。
如果有人提供帮助,那将非常有帮助,在此先感谢您。
由于preventDefault是一个方法,所以需要将e.preventDefault
改为e.preventDefault();
。
参考:https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault
因为您还没有调用 e.preventDefault,点击 添加产品 按钮发出请求并将表单的数据发送到服务器,然后它会显示该请求的响应 (这没什么)结果几毫秒后你只能看到一个空白页面。要解决此问题,您需要将 e.preventDefault 更改为 e.preventDefault() 并且此更改会阻止提交表单。
所以,我做了两个table,一个table里面有一个表格,你可以在那个表格里输入你想要的任何东西,然后它就会显示在另一个table.
<table>
<head>
<tr>
<th>Product Name</th>
<th>Product Price</th>
<th>Product Quantity</th>
<th>Product Barcode</th>
</tr>
</thead>
<tbody>
<tr>
<form id="input">
<td><input class="userinput" id="productname" type="text" placeholder="Product Name"></td>
<td><input class="userinput" id="productprice" type="text" placeholder="Product Price"></td>
<td><input class="userinput" id="productquantity" type="number" placeholder="Product Quantity"></td>
<td><input class="userinput" id="productcode" type="number" placeholder="Product Barcode"></td>
<td><button>Add Products</button></td>
</form>
</tr>
</tbody>
</table>
用户将在此 table 中输入数据,数据将显示在 table 2 中,即:
<table id="products">
<thead>
<tr>
<th>Product Name</th>
<th>Product Price</th>
<th>Product Quantity</th>
<th>Product Barcode</th>
</tr>
</thead>
<tbody id="plist">
<tr>
<td> product name 1</td>
<td>product price 1</td>
<td>product quantity 1</td>
<td>product bardcode 1</td>
</tr>
</tbody>
</table>
这里使用的JS代码是:
<script>
const formel = document.querySelector('#input');
const tableel=document.querySelector('#plist');
function addRow(e){
e.preventDefault;
const pname = document.getElementById('productname').value;
const pprice = document.getElementById('productprice').value;
const pquan = document.getElementById('productquantity').value;
const pcode = document.getElementById('productcode').value;
tableel.innerHTML+= `
<tr>
<td>${pname}</td>
<td>${pprice}</td>
<td>${pquan}</td>
<td>${pcode}</td>
</tr>
`;
}
formel.addEventListener("submit", addRow)
</script>
项目添加了几个 seconds/millions,立即被删除。我尝试检查控制台,它没有显示任何错误。
我是javascript的新手,老实说,我通过观看各种YouTube视频获得了js代码,但我不明白为什么table行添加后立即被删除。
如果有人提供帮助,那将非常有帮助,在此先感谢您。
由于preventDefault是一个方法,所以需要将e.preventDefault
改为e.preventDefault();
。
参考:https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault
因为您还没有调用 e.preventDefault,点击 添加产品 按钮发出请求并将表单的数据发送到服务器,然后它会显示该请求的响应 (这没什么)结果几毫秒后你只能看到一个空白页面。要解决此问题,您需要将 e.preventDefault 更改为 e.preventDefault() 并且此更改会阻止提交表单。