Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2011, 17:21   #1
sem_1989
Пользователь
 
Аватар для sem_1989
 
Регистрация: 25.09.2010
Сообщений: 56
Вопрос Удаление в динамически выпадаемом списке

Сдравствуйте, есть текстовое поле, при вводе в которое выпадает динамический список, список состоит из групп полей, и необходимо возле каждой логически завершённой группы полей добавить ссылку на удаление этой группы(в данном случае под группой понимаеться тип комнаты, описание и её площадь), но ссылка не работает, подскажите в чём может быть проблема, код прилагаеться...

Код HTML:
<html>
<head>
    <script language="JavaScript" type="text/javascript" src="aa.js"></script>
</head>
<body>
    <form method="post">
        <input type="text" id="num_rooms" onChange="room_info()">
		<input type="submit" name="button" value="GO">
        
		<table id="rooms">
        </table>
	</form>
</body>
</html>
Код:
function room_info()
{
   var num_rooms = document.getElementById('num_rooms');
   var div_room = document.getElementById('rooms');
   div_room.innerHTML = "";

   for ( var i = 1; i <= num_rooms.value; i++)
   {
    div_room.innerHTML += "<tr><td><span>*</span>Тип комнаты(" + i + "):</td><td><input id='room" + i + "' type='text' name='type_room" + i + "'><a href='?' onclick='del("+ i +")'>delete " + i + "</a></td></tr>";
	div_room.innerHTML += "<tr><td><span>*</span>Площадь комнаты(" + i + "):</td><td><input type='text' name='square_room" + i + "' size='4' maxlength='4'></td></tr>";
    div_room.innerHTML += "<tr><td>Описание в<br>свободной форме(" + i + "):</td><td><textarea name='free_form_desc_room" + i + "' wrap='soft'></textarea></td></tr>";
   }
}


function del(k){
	var room = document.getElementById("room"+k);
	room.innerHTML = "";
	
	var num_rooms = document.getElementById('num_rooms');
	if (num_rooms.value > 0) num_rooms.value--;
	   
    var div_room = document.getElementById('rooms');
    div_room.innerHTML = "";
	
	for ( var i = 1; i <= num_rooms.value; i++)
	{
		div_room.innerHTML += "<tr><td><span>*</span>Тип комнаты(" + i + "):</td><td><input id='room" + i + "' type='text' value='' name='type_room" + i + "'><a href='?' onclick='del("+ i +")'>delete</a></td></tr>";
		div_room.innerHTML += "<tr><td><span>*</span>Площадь комнаты(" + i + "):</td><td><input type='text' name='square_room" + i + "' size='4' maxlength='4'></td></tr>";
		div_room.innerHTML += "<tr><td>Описание в<br>свободной форме(" + i + "):</td><td><textarea name='free_form_desc_room" + i + "' wrap='soft'></textarea></td></tr>";
	}
}
sem_1989 вне форума Ответить с цитированием
Старый 22.08.2011, 17:55   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

У меня, например, удалилось.
Посмотрите в консоли ошибок, пишет ли что-нибудь
motorway вне форума Ответить с цитированием
Старый 22.08.2011, 20:18   #3
sem_1989
Пользователь
 
Аватар для sem_1989
 
Регистрация: 25.09.2010
Сообщений: 56
По умолчанию

Ошибок в консоли не выдаёт, но и не работает, - после нажатия на ссылку удаления - удаляються все записи, пока не выяснил почему, буду рад любой подсказке...
sem_1989 вне форума Ответить с цитированием
Старый 22.08.2011, 20:32   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Я, наверно, не так понял. У меня удалилось всё и в случае 1, и в случае нескольких групп.
Можно скрывать определенный див с помощью style со значением block, либо вообще приравнять пустой строке его содержимое

Последний раз редактировалось motorway; 22.08.2011 в 20:35.
motorway вне форума Ответить с цитированием
Старый 22.08.2011, 21:09   #5
sem_1989
Пользователь
 
Аватар для sem_1989
 
Регистрация: 25.09.2010
Сообщений: 56
По умолчанию

Ещё один вопрос возник, возможно Вы знаете: "почему после отработки функции del() очищаеться самое первое поле, в котором изначально вводиться число групп?"
sem_1989 вне форума Ответить с цитированием
Старый 22.08.2011, 21:33   #6
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Почему - потому что написана строка room.innerHTML = "";
Другое дело - зачем
motorway вне форума Ответить с цитированием
Старый 23.08.2011, 13:12   #7
sem_1989
Пользователь
 
Аватар для sem_1989
 
Регистрация: 25.09.2010
Сообщений: 56
По умолчанию

Соглашусь только на половину, да действительно эта строка, в неявном виде содержиться в этом участке(недоглядел))):
Код:
 
var div_room = document.getElementById('rooms');
div_room.innerHTML = "";
Но перезагрузка страницы происходила из-за этого кусочка <a href='?' , а именно по причине ссылки; после изменения её на якорь, всё стало работать как следует...<a href='#'
sem_1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск в списке sergo2705 Microsoft Office Access 1 16.08.2011 16:20
Сортировка в списке Uroboros Помощь студентам 17 18.01.2011 22:04
удаление динамически создаваемого компонента delphi JK0 Помощь студентам 3 29.11.2010 19:48
удаление в списке zhenya.ya Помощь студентам 0 07.06.2010 21:08
ЗАмена в списке meizy Помощь студентам 2 03.06.2010 22:31