У меня есть тестовая форма ввода, в которой создается дочерний блок выбора в зависимости от значения одного из вариантов в поле выбора родителя. При выборе любого из других вариантов в поле выбора родителя следует удалить дочерний элемент. Он работает, но только один раз. Если дочерний блок выбора создается второй раз, он не удаляется, выбирая один из других вариантов.removeChild работает только один раз
Вот код:
<html>
<SCRIPT LANGUAGE="JavaScript">
function createtext(){
var var1 = document.getElementById('s');
var var2=var1.value;
if (var2 == "American Express")
{
var selector = document.createElement('select');
selector.id = 'gift';
selector.name = 'gift';
selector.size = '2';
myform.appendChild(selector);
var option = document.createElement('option');
option.value = '0';
option.appendChild(document.createTextNode('Gift card'));
selector.appendChild(option);
option = document.createElement('option');
option.value = '1';
option.appendChild(document.createTextNode('Fully owned card'));
selector.appendChild(option);
}
else
{
myform.removeChild(gift);
}
}
</SCRIPT>
</HEAD>
<BODY >
<form action="" method="get" name="myform">
<SELECT id = "s" name="s" size=3 onChange="createtext()" ><OPTION>Visa Card<OPTION>Mastercard<OPTION>American Express</SELECT>
</form>
</html>
А вот это в действии ... http://www.crazyforstamps.com/test-form-6.htm
Боковое примечание, ваш HTML недопустим. Где подарок, определенный в 'myform.removeChild (gift)'? – j08691
Ссылка, которую вы опубликовали, отлично работает для меня – DVM
Я не вижу вашей проблемы ... Он хорошо работает – Aelios