Так и делал. А на форме написал:
<input type='button' value="DELETE" onClick="button.onClick()";/> Реакции нет. =( |
Цитата:
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <script language="javascript"> function CreateFormElement(){ var createtime = new Date().getTime(); var Form = document.getElementById('fms') var Inner = document.createElement('input'); Inner.type = 'text'; Inner.value = ''; Inner.name = 'size___' + createtime; Form.appendChild(Inner); var Br = document.createElement('br'); Form.appendChild(Br); } button.onClick = function () { var field=this.parentNode; field.parentNode.removeChild(field); } --></script> <body> <form id="fms" method="get" action=""><br /> <input type="button" value="добавить поля формы" onClick="CreateFormElement()"> <input type="button" value="Delete" onClick="button.onClick()" /> </form> </body> </html> На конопку DELETE нажимаю, ничего не происходит. Да, можно одну кнопку. А можно и кнопку, которая будет появляться вместе с полем и по нажатию на нее, удалялось поле. |
Опять это уродство. А что, мой код забраковал? Чем плох?
Цитата:
Цитата:
|
Почему забраковал!? Вот же он:
button.onClick = function () { var field=this.parentNode; field.parentNode.removeChild(field); } А потом добавил кнопку: <input type="button" value="Delete" onClick="button.onClick()" /> и мое воспаленное воображение думало что удалится любое поле, которое я только захочу. )))))) А что касается второго вопроса. Я даже не понимаю о чем речь =D Можно ваш вариант как должно быть?! =) |
Цитата:
не <input> , а <input />. Также этот доктайп требует обязательный атрибут type у тега <script>. А вот атрибут language возможно даже запрещен. И вобще, один хер документ будет распарсен HTML-парсером, а не XML, так что пофиг. Ну все это по сути мелочи. Если бы браузеры всерьез воспринимали, то ща с бы неработало 99% интернет-страниц ))) Ибо веб-девелоперы в своем большинстве плюют на/не знают все эти "стандарты". <!DOCTYPE html> <head> <title>Untitled Document</title> </head> <body> <form id="fms"> <script> (function(){ var fields = []; window.addField = function(){ var form = document.getElementById('fms'); var field = document.createElement('div'); var inputs = ['size', 'price']; for (var i = 0; i < inputs.length; i++) { var input = document.createElement('input'); input.name = inputs[i] + '[]'; field.appendChild(input); } form.appendChild(field); // добавляем на страницу fields.push(field); // добавляем в наш массивчик } window.removeField = function() { var field = fields.pop(); if (!field) return alert('Нечего удалять'); field.parentNode.removeChild(field); // удаляем из страницы } })(); </script> <input type="button" value="добавить поля формы" onclick="addField()"> <input type="button" value="удалить поля" onclick="removeField()"> </form> </body> |
Или даже так:
<!DOCTYPE html> <head> <title>Untitled Document</title> </head> <body> <form id="fms"> <input type="button" name="add" value="добавить поля формы"> <input type="button" name="remove" value="удалить поля"> <script> (function(){ var form = document.getElementById('fms'); var fields = []; var buttons = { add: form.add, remove: form.remove }; buttons.add.onclick = addField; buttons.remove.onclick = removeField; updateButtonsState(); function updateButtonsState() { buttons.remove.disabled = fields.length <= 1; } function addField(){ var field = document.createElement('div'); var inputs = ['size', 'price']; for (var i = 0; i < inputs.length; i++) { var input = document.createElement('input'); input.name = inputs[i] + '[]'; field.appendChild(input); } form.appendChild(field); // добавляем на страницу fields.push(field); // добавляем в наш массивчик updateButtonsState(); } function removeField() { var field = fields.pop(); field.parentNode.removeChild(field); // удаляем из страницы updateButtonsState(); } })(); </script> </form> </body> |
Оу, спасибо за разъяснение! Прям очень порадовало. Не ожидал =)
А удаляется только последние 2 из созданных...а если мне надо удалить поля из середины? По идее они должны быть заполнены. И как только одна из задач решена, поле удаляется, вручную ) |
Цитата:
|
Ок, спасибо большое! =)
|
Часовой пояс GMT +3, время: 02:04. |