Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удалить созданные объекты js
 
 автор: OLi   (27.10.2010 в 23:57)   письмо автору
 
 

Есть код который клонирует список селект и создает 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

  Ответить  
 
 автор: АЯ   (28.10.2010 в 03:14)   письмо автору
 
   для: 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); 

  Ответить  
 
 автор: sim5   (28.10.2010 в 08:07)   письмо автору
 
   для: АЯ   (28.10.2010 в 03:14)
 

>я ещё как-то могу понять тех, кто значение атрибута name у нескольких элементов формы записывает в виде что-то-одинаковое[] - им, видите ли, так удобнее в PHP-программе разбирать данные

А вы что предлагаете, наложить табу на такое именование? )

  Ответить  
 
 автор: АЯ   (28.10.2010 в 08:15)   письмо автору
 
   для: sim5   (28.10.2010 в 08:07)
 

Ага... я сторонник чистого HTML, который предусматривает валидные имена, сиречь состоящие только из латинских букв обоих регистров, арабских цифр и символа подчёркивания, причём начинаться должны именно с буквы. Всякие квадратные скобки и дефисы в этот перечень не входят.

Что до удобства в PHP, то там для "разбора" В ЛЮБОМ ВИДЕ поступивших при сабмите данных вполне достаточно программных средств и методов.

  Ответить  
 
 автор: sim5   (28.10.2010 в 08:24)   письмо автору
 
   для: АЯ   (28.10.2010 в 08:15)
 

Да, средств много, но чтобы действительно обрабатывать удобно было на стороне сервера, то желательно получать массив данных, и не как не массив отдельных полей формы, а массив/массивы групп данных. Разобрать бысто и удобно массив "разношерстных" ключей, это и у РНР средств таких нет, потому и именуют. Ну а для клиента id имеются. :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования