2013-11-15 5 views
1

Я не могу заставить коды работать. Может кто-нибудь указать, что я сделал неправильно? Я просто хочу распечатать входные данные в таблицу с помощью JavaScript.Добавление ввода html в таблицу

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); 
}); 
+0

Где переменная 'row' взялось? Ваша консоль сценариев Java (например, в Firebug) должна показать вам это как ошибку при выполнении кода. – reto

+0

У вас нет объекта под названием 'row'. – Carlangueitor

+0

Что такое '' use strict '; 'и где ваша функция закрывает'} 'фигурные скобки. – Roopendra

ответ

1

Вы отсутствуют

var row= document.createElement("tr"); 

перед линией

var td1 = document.createElement("td"); 

и в конце }); является синтаксической ошибкой. заменить его }

Fiddle:http://jsfiddle.net/Sg2vD/

+0

Спасибо .. Я не знаю, почему Fiddle не обнаружил никаких ошибок на начальном этапе. Я сделал модификацию, но она не работает. Можете ли вы указать, что еще я сделал? Спасибо Fiddle: http: //jsfiddle.net/michelle_low/VHLdE/ – user2995314

+0

проверьте это http://jsfiddle.net/VHLdE/1/ .. в левом окне второе раскрывающееся меню установлено на 'onload', оно должно быть на' no wrap - in ' – zzlalani

+0

А я вижу. Благодарю. Не могли бы вы объяснить, почему он не работает, если он настроен на загрузку? – user2995314

0

Javascript код здесь

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); 

} 
0

Если вы используете таблицу, то лучше практика, чтобы создать THEAD и TBODY элементов в таблице, чтобы отделить заголовок и тело. Используйте tbody для отображения ввода формы. В конце вашего javascript-функции addRow и отсутствующего элемента строки есть некоторая синтаксическая ошибка.

Вот код:

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/

+0

Спасибо, но я не могу заставить его работать в Fiddle. Я сделал модификацию, но ничего не изменилось. http://jsfiddle.net/michelle_low/VHLdE/ – user2995314

Смежные вопросы