如何在没有立即重置的情况下在Javascript中向表中添加行?

时间:2011-07-10 18:13:08

标签: javascript

我正在尝试学习JavaScript,但我正在努力学习一个非常简单的例子。

我有一个表单,我想在每次用户点击提交时将其内容添加到“目录”中的新表行。

但是当我使用下面的代码点击提交时,我看到新表格行短暂闪烁然后消失,好像页面正在重置。

当我使用注释掉的代码时(只是将表单内容附加到body.innerHTML),它工作正常。

我做错了什么?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4   /loose.dtd"> 
<html>
<head>
<title>Javascript test</title>
</head>

<script type="text/javascript">
function addItem() {
    var itemName = document.getElementById('item_name').value;      
    var itemPrice = document.getElementById('item_price').value;

    var newRow = document.createElement('tr');
    //var body = document.getElementById('body');
   //body.innerHTML += itemName;    
   newRow.innerHTML = "<td>" + itemName + "</td><td>" + itemPrice + "</td>";
   var catalog = document.getElementById('catalog');
   catalog.appendChild(newRow);
}

</script>

<body id="body"> 
 <form><h2>Add an Item to the Catalog</h2>

<p>Item Name: <input type="text" id="item_name" value="" /> Price: <input type="text"    id="item_price" value="" /></p>

<input type="submit" onClick="addItem()" value="Add" id="submit" />
<input type="reset" id="reset" />
</form>

<table id="catalog"></table>

</body>
</html>

2 个答案:

答案 0 :(得分:3)

'submit'的输入类型将在执行JavaScript后提交表单。

如果您将输入类型更改为“按钮”,您将看到代码正常工作。

<input type="button" onClick="addItem()" value="Add" id="submit" />

这也称为“PostBack”,它涉及获取表单上输入字段中的数据,并再次将其发布到页面。发布到页面的数据可以从服务器端代码中获取,作为进一步操作的基础。

否则,你的代码没问题。我唯一的建议就是构建td s的方式与构建tr的方法相同

答案 1 :(得分:0)

type="submit"更改为type="button"