Reputation: 13
I can't get the codes to work. Can somebody point out what have I done wrong? I just want to print the input to a table using JavaScript.
HTML
Item:
<input type="text" name="item" id="item" /><br />
Quantity:
<input type="text" name="quantity" id="quantity" /><br />
Price: AUD
<input type="text" name="price" id="price" /><br /><br />
<input type="button" value="Add Product +" onClick="addRow()" id="add"><br /><br />
<table id="table" border="1">
<tr>
<th>Item</th>
<th>Quantity</th>
<th>Price</th>
</tr>
</table>
JavaScript
function addRow() {
"use strict";
var table = document.getElementById("table");
var td1 = document.createElement("td");
var td2 = document.createElement("td");
var td3 = document.createElement("td");
td1.innerHTML = document.getElementById("item").value;
td2.innerHTML = document.getElementById("quantity").value;
td3.innerHTML = document.getElementById("price").value;
row.appendChild(td1);
row.appendChild(td2);
row.appendChild(td3);
table.children[0].appendChild(row);
});
Upvotes: 1
Views: 26370
Reputation: 101
javascript code here
function addRow()
{
var table = document.getElementById("table");
var row = document.createElement("tr");
var cell = document.createElement("td");
var cellText = document.createTextNode(document.getElementById("item").value);
cell.appendChild(cellText);
row.appendChild(cell);
var cell = document.createElement("td");
var cellText = document.createTextNode(document.getElementById("quantity").value);
cell.appendChild(cellText);
row.appendChild(cell);
var cell = document.createElement("td");
var cellText = document.createTextNode(document.getElementById("price").value);
cell.appendChild(cellText);
row.appendChild(cell);
table.appendChild(row);
}
Upvotes: 0
Reputation: 23
If you are using table, it is best practice to create thead and tbody elements in the table to separate the header and the body. Use the tbody to display your form input. There are some syntax error at the end of your addRow javascript function and missing row element.
Here is the code:
Item:
<input type="text" name="item" id="item" />
<br />Quantity:
<input type="text" name="quantity" id="quantity" />
<br />Price: AUD
<input type="text" name="price" id="price" />
<br /><br />
<input type="button" value="Add Product +" onClick="addRow()" id="add">
<br /><br />
<table id="table" border="1">
<thead id="table-head">
<tr>
<th>Item</th>
<th>Quantity</th>
<th>Price</th>
</tr>
</thead>
<tbody id="table-body">
</tbody>
</table>
<script>
function addRow() {
"use strict";
var tableBody = document.getElementById("table-body");
var td1 = document.createElement("td");
var td2 = document.createElement("td");
var td3 = document.createElement("td");
var row = document.createElement("tr");
td1.innerHTML = document.getElementById("item").value;
td2.innerHTML = document.getElementById("quantity").value;
td3.innerHTML = document.getElementById("price").value;
row.appendChild(td1);
row.appendChild(td2);
row.appendChild(td3);
tableBody.appendChild(row);
}
</script>
Fiddle: http://jsfiddle.net/HypdD/
Upvotes: 0
Reputation: 24354
You are missing
var row= document.createElement("tr");
before the line
var td1 = document.createElement("td");
and in the end });
is a syntax error. replace it with }
Fiddle: http://jsfiddle.net/Sg2vD/
Upvotes: 1