|
|
|
| Есть код который клонирует список селект и создает input по клику ...проблема в том, что не получается удалить созданный select одновременно с удалением input
<script language="javascript">
var arrInput = new Array();
var arrInputValue = new Array(0);
function display() {
document.getElementById('parah').innerHTML="";
for (intI=0;intI<arrInput.length;intI++) {
document.getElementById('parah').innerHTML+=createInput(arrInput[intI], arrInputValue[intI]);
}
}
function createInput(id,value) {
return "<input type='text' id='tel[]' onChange='javascript:saveValue("+ id +",this.value)' value='"+ value +"'><br>";
}
function deleteInput() {
if (arrInput.length > 0) {
arrInput.pop();
arrInputValue.pop();
}
display();
}
function addSoftware() {
arrInput.push(arrInput.length);
arrInputValue.push("");
display();
var formFld = document.getElementById("cat").cloneNode(true);
document.getElementById("soft").appendChild(formFld);
}
</script>
</head>
<body>
<form action="test.asp" method="post" >
<select name="cat" id="cat" >
<option value="533">533</option><option value="552">552</option><option value="555">555</option><option value="777">777</option><option value="778">778</option><option value="215">215</option><option value="557">557</option><option value="216">216</option><option value="210">210</option><option value="219">219</option><option value="562">562</option><option value="373-691">373-691</option><option value="373-709">373-709</option><option value="373-684">373-684</option><option value="373-694">373-694</option><option value="373-690">373-690</option><option value="775">775</option><option value="779">779</option><option value="373-797">373-797</option><option value="0-800">0-800</option><option value="0-900">0-900</option> <option value="">Другой</option>
-
</select>
<p>
<div id="soft" style="display:inline"></div> <div style="display:inline" id="parah"></div>
</p>
<input type="button" value=" + " name="AddSoft" onclick="addSoftware()">
<a href="javascript:deleteInput()">Remove field(s)</a>
</form>
</body>
</html>
|
Кто подскажет? Проблема в том, что надо удалять предпоследний...а так как клонирование то у каждого нового созданного селект одинаковый id | |
|
|
|
|
|
|
|
для: OLi
(27.10.2010 в 23:57)
| | Интересный подход.
Нет, я ещё как-то могу понять тех, кто значение атрибута name у нескольких элементов формы записывает в виде что-то-одинаковое[] - им, видите ли, так удобнее в PHP-программе разбирать данные, отправленные при сабмите формы.
Но зачем записывать значение атрибута id у тех же элементов одинаковыми, да с квадратными скобками?
Этого я, наверно, не пойму никогда.
Ибо логику круглого дурака может понять только такой же круглый дурак.
А я, извините, дурак "треугольный" :-)
-----
Атрибут id специально создан для того, чтобы его можно было использовать ТОЛЬКО на самой странице, ибо при сабмите формы значение этого атрибута серверному скрипту, в отличие от значения атрибута name, не передаётся.
Задавай id ТАКИЕ значения, с которыми будет удобнее работать на странице!
Но нет... Сначала назначат всем элементам кривые и одинаковые id, а потом будут думать - как же эту "кривость" и "одинаковость" побороть? :-)
Кто/что мешает вставить строчку:
var formFld = document.getElementById("cat").cloneNode(true);
formFld.id = "уникальный_ID";
document.getElementById("soft").appendChild(formFld);
|
| |
|
|
|
|
|
|
|
для: АЯ
(28.10.2010 в 03:14)
| | >я ещё как-то могу понять тех, кто значение атрибута name у нескольких элементов формы записывает в виде что-то-одинаковое[] - им, видите ли, так удобнее в PHP-программе разбирать данные
А вы что предлагаете, наложить табу на такое именование? ) | |
|
|
|
|
|
|
|
для: sim5
(28.10.2010 в 08:07)
| | Ага... я сторонник чистого HTML, который предусматривает валидные имена, сиречь состоящие только из латинских букв обоих регистров, арабских цифр и символа подчёркивания, причём начинаться должны именно с буквы. Всякие квадратные скобки и дефисы в этот перечень не входят.
Что до удобства в PHP, то там для "разбора" В ЛЮБОМ ВИДЕ поступивших при сабмите данных вполне достаточно программных средств и методов. | |
|
|
|
|
|
|
|
для: АЯ
(28.10.2010 в 08:15)
| | Да, средств много, но чтобы действительно обрабатывать удобно было на стороне сервера, то желательно получать массив данных, и не как не массив отдельных полей формы, а массив/массивы групп данных. Разобрать бысто и удобно массив "разношерстных" ключей, это и у РНР средств таких нет, потому и именуют. Ну а для клиента id имеются. :) | |
|
|
|