добавление новых элементов по щелчку
Ребят, помогите! :help:
Нужно по щелчку(не однократно) добавить группу элементов. краткий пример кода:
<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=""> Помогите!!!! Чет никак не могу сообразить...:write: |
<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>
|
или
<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>
|
Предложу такой вариант...
<!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>
|
супер!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Спасибо, очень оперативно))) :D
|
есть еще такая вещь как 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>
|
Arramis, маленько неправильно: кнопка остается после первого пункта! :no:
|
| Часовой пояс GMT +3, время: 19:32. |