Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   как удалить form'у (https://javascript.ru/forum/css-html/44992-kak-udalit-form%27u.html)

Belai 10.02.2014 07:49

как удалить form'у
 
Привет!
Есть код. Добавление формы на старницу с двумя
text
по нажатию на кнопку.

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 Form2 = document.getElementById('fms')
  var Inner2 = document.createElement('input');
  Inner2.type = 'text';
  Inner2.value = '';
  Inner2.name = 'price___' + createtime;
  Form2.appendChild(Inner2);
 
 
  var Br = document.createElement('br');
  Form.appendChild(Br);
}

<input type="button" value="добавить поля формы" onClick="CreateFormElement()">


Как удалить одну из форм, если она стала не нужна?!

danik.js 10.02.2014 08:24

Цитата:

Сообщение от Belai
var Form = document.getElementById('fms')
...
var Form2 = document.getElementById('fms')

Ну ну, а че две всего? Даешь еще кучку:
var Form3 = document.getElementById('fms')
var Form4 = document.getElementById('fms')
var Form5 = document.getElementById('fms')

Веселуха же!!!
Цитата:

Сообщение от Belai
Как удалить одну из форм, если она стала не нужна?!

Форму или поле из формы?
form.removeChild(input); // где form - ссылка на элемент формы, input - ссылка на удаляемое поле.

Цитата:

Сообщение от Belai
Form, Inner, CreateFormElement

Имена переменных с большой буквы - очень заментый признак некомпетентности. Ровные пацаны знают, что в JS с большой буквы именуются только конструкторы.

Belai 10.02.2014 08:39

Вы очень жестоко меня троллите! Я расстроен! =D

Удалить форму. Нажимаем на кнопку добавить, скажем 3 раза, появляется 3 формы с 2 полями. Мне захотелось удалить 2-ую форму. Как это сделать!?

Я за код прошу прощения, ибо вообще не шарю в JS. И тут я именно поэтому.

Ну а вообще, спасибо. Хоть и троллите, но помогаете. =)

ksa 10.02.2014 08:53

Цитата:

Сообщение от Belai
Вы очень жестоко меня троллите!

Он тебе объясняет, что ИД должен быть уникальным на странице.

Цитата:

Сообщение от Belai
Мне захотелось удалить 2-ую форму. Как это сделать!?

Получить ссылку на нее и воспользоваться методом removeChild()...
http://shpargalkablog.ru/2013/08/app...avascript.html

danik.js 10.02.2014 09:07

Цитата:

Сообщение от ksa
Он тебе объясняет, что ИД должен быть уникальным на странице.

Да форма вроде одна, просто переменных зачем-то две. Ну я и предложил увеличить их количество. А че, жрать не просять же)

Цитата:

Сообщение от Belai
Вы очень жестоко меня троллите!

Да ну прям.
Цитата:

Сообщение от Belai
Я расстроен! =D

С таким то кодом еще бы не расстроиться :)

<!DOCTYPE html>
<form id="fms"></form>
<script>
var fields = [];
function addField(){
    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); // добавляем в наш массивчик
}
function removeField(index) {
    var field = fields[index];
    if (!field)
        return alert('Нет формы с индексом ' + index);
    field.parentNode.removeChild(field); // удаляем из страницы
    fields.splice(index, 1); // удаляем из массивчика
}
</script>
<input type="button" value="добавить поля формы" onclick="addField()">
<input type="button" value="удалить второе поле" onclick="removeField(1)">

ksa 10.02.2014 09:29

Цитата:

Сообщение от danik.js
Да форма вроде одна

По ИДешнику он точно будет брать только одну. :yes:

Belai 10.02.2014 11:41

Цитата:

Сообщение от danik.js (Сообщение 296853)
Да форма вроде одна, просто переменных зачем-то две. Ну я и предложил увеличить их количество. А че, жрать не просять же)


Да ну прям.

С таким то кодом еще бы не расстроиться :)

<!DOCTYPE html>
<form id="fms"></form>
<script>
var fields = [];
function addField(){
    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); // добавляем в наш массивчик
}
function removeField(index) {
    var field = fields[index];
    if (!field)
        return alert('Нет формы с индексом ' + index);
    field.parentNode.removeChild(field); // удаляем из страницы
    fields.splice(index, 1); // удаляем из массивчика
}
</script>
<input type="button" value="добавить поля формы" onclick="addField()">
<input type="button" value="удалить второе поле" onclick="removeField(1)">

А если надо не 2 а 4 или 5 или 19 ? =D

Belai 10.02.2014 11:42

Цитата:

Сообщение от ksa (Сообщение 296858)
По ИДешнику он точно будет брать только одну. :yes:

Я бы и рад по id взять... только как )))

Belai 10.02.2014 11:42

Спасибо за ответы! =)

ksa 10.02.2014 11:43

Цитата:

Сообщение от Belai
А если надо не 2 а 4 или 5 или 19 ?

У тебя вообще одна форма...


Часовой пояс GMT +3, время: 19:38.