Javascript.RU

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

добавление новых элементов по щелчку
Ребят, помогите!
Нужно по щелчку(не однократно) добавить группу элементов.
краткий пример кода:
<form action="" method="POST">
   <input id="m" name="">
            <br>
            1. - 
            <input name="">
            <input name="">
            <input name="">
----------------------------------------------------------------------
добавить сюда...
----------------------------------------------------------------------
            <input type="button" onclick="add">
</form>


и добавить нужно что то вроде этого:
<br>
 2. - 
<input name="">
<input name="">
<input name="">


Помогите!!!! Чет никак не могу сообразить...
Ответить с цитированием
  #2 (permalink)  
Старый 05.11.2013, 01:34
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

<form action="" method="POST">
	<input id="m" name="">
	<div id="inputs">
		<span>1. -</span> 
		<input name="">
		<input name="">
		<input name="">
	</div>
	<input type="button" onclick="add()" value="click!">
</form>
<script>
var count = 1;
function add() {
	var div = document.createElement ('div');
	div.innerHTML = ++count + '. - <input name=""> <input name=""> <input name="">';
	document.getElementById('inputs').appendChild(div);
}
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 05.11.2013, 01:54
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

или
<form action="" method="POST">
	<input id="m" name="">
	<br>
	1. -
	<input name=""><input name=""><input name=""><input type="button" onclick="add(this)" value=" + ">
</form>
<script>
var count = 1;
function add(btn) {
	var parent = btn.parentNode;
	parent.insertBefore(document.createElement('br'), btn);
	parent.insertBefore(document.createTextNode(++count + '. - '), btn);
	parent.insertBefore(document.createElement('input'), btn);
	parent.insertBefore(document.createElement('input'), btn);
	parent.insertBefore(document.createElement('input'), btn);
}
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 05.11.2013, 08:55
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Предложу такой вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
#source {
	display: none;
}
</style>
<script type="text/javascript">
function add(Obj){
	var frm=Obj.parentNode;
	var o=document.getElementById('source');
	o=o.getElementsByTagName('div')[0].cloneNode(true);
	var i=frm.getElementsByTagName('div').length;
	o.getElementsByTagName('span')[0].innerHTML=i+1;
	frm.insertBefore(o,Obj);
};
</script>
</head>
<body>
<form action="" method="POST">
	<input id="m" name="">
	<div>
		<p><span>1</span>. - </p>
		<input name="">
		<input name="">
		<input name="">
	</div>
	<input type="button" onclick="add(this);">
</form>
<div id='source'>
	<div>
		<p><span></span>. - </p>
		<input name="">
		<input name="">
		<input name="">
	</div>
</div>
</body>
</html>

Последний раз редактировалось ksa, 05.11.2013 в 08:59.
Ответить с цитированием
  #5 (permalink)  
Старый 05.11.2013, 12:29
ufo ufo вне форума
Интересующийся
Отправить личное сообщение для ufo Посмотреть профиль Найти все сообщения от ufo
 
Регистрация: 05.11.2013
Сообщений: 15

супер!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Спасибо, очень оперативно)))
Ответить с цитированием
  #6 (permalink)  
Старый 05.11.2013, 15:49
Аватар для Arramis
Кандидат Javascript-наук
Отправить личное сообщение для Arramis Посмотреть профиль Найти все сообщения от Arramis
 
Регистрация: 22.07.2013
Сообщений: 104

есть еще такая вещь как documentFragment()

<!DOCTYPE HTML>
<html>
  <head></head>
  <body>
	<form action = "" method = "POST">
   		 <input id = "m" name = "">
     	 <br>
    	  1. - 
     	 <input name = "">
     	 <input name = "">
     	 <input name = "">
      <input type = "button" onclick = "add()" value = 'More!'>
	</form>

    <script type = 'text/javascript'>
    	var i = 1;
      function add() {
      	var form = document.getElementsByTagName('form')[0],
            fragment = document.createDocumentFragment();        
        fragment.appendChild(document.createElement('br'));
        fragment.appendChild(document.createTextNode(++i + '. - '));
        fragment.appendChild(document.createElement('input'));
        fragment.appendChild(document.createElement('input'));
        fragment.appendChild(document.createElement('input'));
        form.appendChild(fragment);        
      }	
    </script>

  </body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 11.11.2013, 00:01
ufo ufo вне форума
Интересующийся
Отправить личное сообщение для ufo Посмотреть профиль Найти все сообщения от ufo
 
Регистрация: 05.11.2013
Сообщений: 15

Arramis, маленько неправильно: кнопка остается после первого пункта!

Последний раз редактировалось ufo, 11.11.2013 в 00:27.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает код при добавление новых элементов dima85 jQuery 12 26.09.2015 12:27
Добавление обработчика событий при добавлении элементов vladimircape Events/DOM/Window 3 13.09.2012 09:57
Добавление в чат новых сообщений. xJAMESx jQuery 4 29.05.2012 23:13
Привильное добавление элементов с помощью js syegorius Events/DOM/Window 0 08.01.2012 09:32
Добавление элементов в таблицу *.txt Раиль Оффтопик 1 16.12.2010 01:49