Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2010, 09:12
Интересующийся
Отправить личное сообщение для HedgehogNSK Посмотреть профиль Найти все сообщения от HedgehogNSK
 
Регистрация: 08.06.2010
Сообщений: 10

Нажимаем кнопку - добавляется строка.
К примеру есть таблица:

<table name='tab1' border='1'align='left'>
<tr>
   <td><input type='text' name='1'></td>
   <td><input type='checkbox' name='2'></td>
   <td><input type='textarea' name='3'></td>
</tr>
</table>


И есть кнопочка:
<input type='button' value='Ещё'>


Как сделать так, чтобы при нажатии на кнопочку "Ещё", в таблице добавлялась ещё одна строка аналогичная той что уже есть?
Выглядит достаточно просто, но мои скромные знания языка не позволяют этого сделать. Помогите, пожалста.=)
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2010, 09:17
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

var node = document.createElement('td');
node.innerHTML = 'Содержимое';
document.tabl.getElementsByTagName('tr')[0].appendChild(node);
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2010, 09:48
Интересующийся
Отправить личное сообщение для HedgehogNSK Посмотреть профиль Найти все сообщения от HedgehogNSK
 
Регистрация: 08.06.2010
Сообщений: 10

Вставил ваш код так:

<script language="JavaScript">
 function add(){
var node = document.createElement('td'); 
node.innerHTML = "<input type='text' name='1'>"; 
document.tabl.getElementsByTagName('tr')[0].appendChild(node);
}
</script>

И использовал так:

<table name='tabl' border='1'align='left'>
<tr>
	<td><input type='text' name='1'></td>
</tr>
</table>
<input type='button' value='Ещё' onClick='add();'>


Компилятор ругается: "Ошибка: 'document.tabl' - есть null или не является объектом" Спрашивается, где я накосячил?=(
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2010, 09:52
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Эту строку так
<table  id='tabl' border='1'align='left'>


а ту в которой ошибка, так
document.getElementById('tabl').getElementsByTagName('tr')[0].appendChild(node);
__________________
.
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2010, 10:21
Интересующийся
Отправить личное сообщение для HedgehogNSK Посмотреть профиль Найти все сообщения от HedgehogNSK
 
Регистрация: 08.06.2010
Сообщений: 10

Спасибо. В принципе заработало. Единственный минус, что код добавляет TD'шку (на сколько я разобрался в коде). А мне нужна новая строка в таблицу, то есть TR'ка.
Ответить с цитированием
  #6 (permalink)  
Старый 08.06.2010, 10:30
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Так?
<script language="JavaScript">
 function add(){
var nodet = document.createElement('tr'); 
var node = document.createElement('td'); 
node.innerHTML = "<input type='text' name='1'>";
document.getElementById('tabl').appendChild(nodet);
nodet.appendChild(node);
}

</script>
__________________
.
Ответить с цитированием
  #7 (permalink)  
Старый 08.06.2010, 10:55
Интересующийся
Отправить личное сообщение для HedgehogNSK Посмотреть профиль Найти все сообщения от HedgehogNSK
 
Регистрация: 08.06.2010
Сообщений: 10

Теперь совсем ничего не добавляет и ошибок никаких не выдаёт.
Ответить с цитированием
  #8 (permalink)  
Старый 08.06.2010, 11:11
Интересующийся
Отправить личное сообщение для HedgehogNSK Посмотреть профиль Найти все сообщения от HedgehogNSK
 
Регистрация: 08.06.2010
Сообщений: 10

Спасибо большое за помощь. Пока с тем что вы написали разбирался, написал немного по-другому.=)
<script language="JavaScript">
 function add(){
var addTR = document.getElementById('tabl').insertRow(-1); 
var addTD =addTR.insertCell(-1); 
addTD.innerHTML = "<input type='text' name='1'>";
}
</script>
Ответить с цитированием
  #9 (permalink)  
Старый 08.06.2010, 11:15
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Как же не работает?

<html>
<head>
<script language="JavaScript">
 function add(){
var nodet = document.createElement('tr'); 
var node = document.createElement('td'); 
node.innerHTML = "<input type='text' name='1'>";
document.getElementById('tabl').appendChild(nodet);
nodet.appendChild(node);
}
</script>
</head>
<body>
<table id='tabl' border='1'align='left'>
<tr>
	<td><input type='text' name='1'></td>
</tr>
</table>
<input type='button' value='Ещё' onClick='add();'>
</body>
</html>
__________________
.
Ответить с цитированием
  #10 (permalink)  
Старый 08.06.2010, 11:23
Интересующийся
Отправить личное сообщение для HedgehogNSK Посмотреть профиль Найти все сообщения от HedgehogNSK
 
Регистрация: 08.06.2010
Сообщений: 10

Я использую EditPlus как редактор в нём не сработало. В опере работает. Извенити, сразу не проверил.=) В IE'шнике тоже не сработало. Ещё раз спасибо за помощь.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так, чтобы JS при нажатии на кнопку не выполняла запрос со страницы. JSProgrammer Элементы интерфейса 3 18.05.2010 20:18
Нажать кнопку по истечению 2 минут vanek2010 Общие вопросы Javascript 5 21.01.2010 18:50
Нажать кнопку по истечению 2 минут vanek2010 Элементы интерфейса 1 21.01.2010 17:12