Javascript.RU

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

Помогите, с динамическим добавлением <input >
Пытаюсь я зделать <input > чтоб при клацаньи на "+" добавлялся новый и присваивалось имя типа такого <input name="food[1]" /> а при нажатии "-" удалялись по очереди снизу вверх естестно, задача кажись не сложна...

но вот тока в JS я новичек и нефига неполучеться ...
Начал я так .. но в данном примере <input name="food[1]" /> с подобным именем справиться немогу .. и ктомуже нехватает функции удаления

d = document;

function addRow()
{


var tbody = d.getElementById('tab1').getElementsByTagName('TBO DY')[0];


var row = d.createElement("TR");
tbody.appendChild(row);

var td1 = d.createElement("TD");

row.appendChild(td1);


// Наполняем ячейки
td1.innerHTML='<input class="food_input_center" type="text" name="food[]"/>';

}

Помогите плиз ...
Ответить с цитированием
  #2 (permalink)  
Старый 28.05.2010, 16:12
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

<div>
	<div id="area">
	</div>
</div>
<input type="button" value="+" onclick="add();" />
<input type="button" value="-" onclick="remove();" />
<script type="text/javascript">
var e = document.getElementById('area');
function add() {
	var c = document.createElement('input');
	c.type = 'text';
	e.appendChild(c);
}
function remove() {
	var q = e.getElementsByTagName('input');
	q[q.length - 1].parentNode.removeChild(q[q.length - 1]);
}
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 28.05.2010, 16:16
Профессор
Отправить личное сообщение для Arfey Посмотреть профиль Найти все сообщения от Arfey
 
Регистрация: 28.05.2010
Сообщений: 204

Подскажите еще 1 момент плиз ...

<input name="food[1]" /> - присвоение подобного имени при добавлении нового инпата
food[1] - нада както номер накручивать .. незнаю от чего отпраться ..
Ответить с цитированием
  #4 (permalink)  
Старый 28.05.2010, 16:18
Профессор
Отправить личное сообщение для Arfey Посмотреть профиль Найти все сообщения от Arfey
 
Регистрация: 28.05.2010
Сообщений: 204

q.length - хотя наверно .. от этого опираться

СПС ... сча попробую!!
Ответить с цитированием
  #5 (permalink)  
Старый 28.05.2010, 16:20
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

<div>
	<div id="area">
	</div>
</div>
<input type="button" value="+" onclick="add();" />
<input type="button" value="-" onclick="remove();" />
<script type="text/javascript">
var e = document.getElementById('area');
function add() {
	var c = document.createElement('input');
	c.type = 'text';
	c.name = 'food[' + e.getElementsByTagName('input').length + ']';
	e.appendChild(c);
}
function remove() {
	var q = e.getElementsByTagName('input');
	q[q.length - 1].parentNode.removeChild(q[q.length - 1]);
}
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 28.05.2010, 17:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,084

но тут малец с поправкой влез ))) если надо имя с единицы начинать
<div>
	<div id="area">
	</div>
</div>
<input type="button" value="+" onclick="add();" />
<input type="button" value="-" onclick="remove();" />
<script type="text/javascript">
var e = document.getElementById('area');
var q = e.getElementsByTagName('input');
function add() {
	var c = document.createElement('input');
	c.type = 'text';
    c.name = "food["+(q.length+1)+"]";
    e.appendChild(c);
}
function remove() {
   	q[q.length - 1].parentNode.removeChild(q[q.length - 1]);
}
</script>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Элемент <input type="image" ...> Мел Общие вопросы Javascript 11 03.10.2008 00:43