Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.03.2014, 03:39
Аспирант
Отправить личное сообщение для kowapos Посмотреть профиль Найти все сообщения от kowapos
 
Регистрация: 25.03.2014
Сообщений: 36

Удалить последнее поле
Всем привет. вот, запилил скрипт который добавляет новые поля, все работает, но хочу сделать функцию, которая по клике на кнопку удаляет последнее поле. подскажите. так же хочется услышать объективную критику. спасибо

<form>
	<input type = "text">
	<span id = "NewFields"></span>
	<br> <input name = "MyField" type = "button" value = "+" onclick = 'CreateFormElement()'>
</form>


function CreateFormElement(){
    
  var MyForm = document.getElementById('NewFields');
  var input = document.createElement('input');
  var br = document.createElement('br');

  input.type = 'text';
  input.name = 'MyField';

  MyForm.appendChild(br);
  MyForm.appendChild(input);
}





ps: как оформить пост, что бы этот скрипт запустился?
Ответить с цитированием
  #2 (permalink)  
Старый 30.03.2014, 04:04
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

function removeLastField() {
  var fieldsSpan = document.getElementById('NewFields');
  var lastField = fieldsSpan.lastChild;
  if (!lastField) return;
  fieldsSpan.removeChild(lastField); //удаляем поле
  var br = fieldsSpan.lastChild;
  fieldsSpan.removeChild(br); //удаляем br
}
Ответить с цитированием
  #3 (permalink)  
Старый 30.03.2014, 04:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

[HTML run]<form>
	<input type = "text">
	<span id = "NewFields"></span>
	<br> <input name = "MyField" type = "button" value = "+" onclick = 'CreateFormElement()'>
     <input name = "MyField" type = "button" value = "-" onclick = 'CreateFormElement(true)'>
</form>
<script>
   function CreateFormElement(remove){
  var MyForm = document.getElementById('NewFields');
  var input = remove ? MyForm.querySelector(':nth-last-child(1)') : document.createElement('input');
  var br = remove ? MyForm.querySelector(':nth-last-child(2)') : document.createElement('br');

    var ap = remove ? "removeChild" : "appendChild"
 if(br)MyForm[ap](br);
  if (input){input.type = 'text';
  input.name = 'MyField';MyForm[ap](input);
}
}
</script>[/HTML]


<form>
	<input type = "text">
	<span id = "NewFields"></span>
	<br> <input name = "MyField" type = "button" value = "+" onclick = 'CreateFormElement()'>
     <input name = "MyField" type = "button" value = "-" onclick = 'CreateFormElement(true)'>
</form>
<script>
   function CreateFormElement(remove){
  var MyForm = document.getElementById('NewFields');
  var input = remove ? MyForm.querySelector(':nth-last-child(1)') : document.createElement('input');
  var br = remove ? MyForm.querySelector(':nth-last-child(2)') : document.createElement('br');

    var ap = remove ? "removeChild" : "appendChild"
 if(br)MyForm[ap](br);
  if (input){input.type = 'text';
  input.name = 'MyField';MyForm[ap](input);
}
}
</script>

Последний раз редактировалось рони, 30.03.2014 в 09:51.
Ответить с цитированием
  #4 (permalink)  
Старый 30.03.2014, 04:20
Аспирант
Отправить личное сообщение для kowapos Посмотреть профиль Найти все сообщения от kowapos
 
Регистрация: 25.03.2014
Сообщений: 36

всем спасибо )))
Ответить с цитированием
  #5 (permalink)  
Старый 30.03.2014, 04:30
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от рони Посмотреть сообщение
function CreateFormElement(remove){
  var MyForm = document.getElementById('NewFields');
  var input = remove ? MyForm.querySelector(':nth-last-child(1)') : document.createElement('input');
  var br = remove ? MyForm.querySelector(':nth-last-child(2)') : document.createElement('br');
 
  input.type = 'text';
  input.name = 'MyField';
  var ap = remove ? "removeChild" : "appendChild"
  MyForm[ap](br);
  MyForm[ap](input);
}
При пустом спане при удалении эксепшн будет.
Ответить с цитированием
  #6 (permalink)  
Старый 30.03.2014, 09:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

jsnb,
добавил проверку в код выше
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подскажите как удалить div alex2012 jQuery 5 13.10.2016 17:43
Как удалить коммит github Maxmaxmaximus6 Оффтопик 59 01.01.2014 19:42
Получить координаты курсора в текстовом поле в пикселях prike Events/DOM/Window 4 23.05.2013 04:35
Ошибка в не большом скрипте modestes jQuery 2 08.03.2013 04:28
Изменение класса Div-ов по клику... Torch`Ok Events/DOM/Window 22 12.09.2012 16:43