Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.04.2010, 12:12
Новичок на форуме
Отправить личное сообщение для Serghei Посмотреть профиль Найти все сообщения от Serghei
 
Регистрация: 10.04.2010
Сообщений: 5

Исправить код
Помогите исправить код.

Если удалить последний SELECT из созданного списка то счетчик 'unic times' считает все нормально.

А если удалить любой другой SELECT кроме последнего 'unic times' считает неверно.

Помогите исправить код, чтобы при удаление любого SELECT-a 'unic times' считал правильно.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>

</head>

<body>


Viberite vremea<br>
====================<br>


<script type="text/javascript">
var countOfFields = 1;
var curFieldNameId = 1;
var cm = 0;

function arrayUnique(ar)
{
	var a = [];
	var l = ar.length;
	for(var i = 0; i < l; i++)
	{
		for(var j = i+1; j < l; j++)
		{
			if (ar[i] === ar[j])
			j = ++i;
		}
		a.push(ar[i]);
	}
	return a;
}

function changeVal(n)
{
	m = new Array();

	for(var k = 1; k <= n; k++)
	{
		m[m.length] = document.getElementById('time['+k+']').value;
	}

	document.getElementById('toCM').innerHTML = arrayUnique(m).length;
}

function deleteTime(sel)
{
	var contDiv = sel.parentNode;
	contDiv.parentNode.removeChild(contDiv);
	countOfFields--;

	cm--;
	changeVal(cm);
}

function addTime()
{
	var div = document.createElement("div");

	if (countOfFields<=5)
	{
		countOfFields++;
		curFieldNameId++;
		cm++;

		div.innerHTML = '<select size="1" name="Time[]" id="time['+cm+']" onchange="changeVal(cm)">' +
		'<option value="08:00">08:00</option>'+
		'<option value="08:30">08:30</option>'+
		'<option value="09:00">09:00</option>'+
		'<option value="09:30">09:30</option>'+
		'<option value="10:00">10:00</option>'+
		'<option value="10:30">10:30</option>'+
		'<option value="11:00">11:00</option>'+
		'<option value="11:30">11:30</option>'+
		'<option value="12:00">12:00</option>'+
		'<option value="12:30">12:30</option>'+
		'<option value="13:00">13:00</option>'+
		'<option value="13:30">13:30</option>'+
		'<option value="14:00">14:00</option>'+
		'<option value="14:30">14:30</option>'+
		'<option value="15:00">15:00</option>'+
		'<option value="15:30">15:30</option>'+
		'<option value="16:00">16:00</option>'+
		'<option value="16:30">16:30</option>'+
		'<option value="17:00">17:00</option>'+
		'<option value="17:30">17:30</option>'+
		'<option value="18:00">18:00</option>'+
		'<option value="18:30">18:30</option>'+
		'<option value="19:00">19:00</option>'+
		'<option value="19:30">19:30</option>'+
		'<option value="20:00">20:00</option>'+
		'<option value="20:30">20:30</option>'+
		'<option value="21:00">21:00</option>'+
		'<option value="21:30">21:30</option>'+
		'<option value="22:00">22:00</option>'+
		'<option value="22:30">22:30</option>'+
		'<option value="23:00">23:00</option>'+
		'<option value="23:30">23:30</option>'+
		'<option value="00:00">00:00</option>'+
		'<option value="00:30">00:30</option>'+
		'<option value="01:00">01:00</option>'+
		'<option value="01:30">01:30</option>'+
		'<option value="02:00">02:00</option>'+
		'<option value="02:30">02:30</option>'+
		'<option value="03:00">03:00</option>'+
		'<option value="03:30">03:30</option>'+
		'<option value="04:00">04:00</option>'+
		'<option value="04:30">04:30</option>'+
		'<option value="05:00">05:00</option>'+
		'<option value="05:30">05:30</option>'+
		'<option value="06:00">06:00</option>'+
		'<option value="06:30">06:30</option>'+
		'<option value="07:00">07:00</option>'+
		'<option value="07:30">07:30</option>'+
		'</select>'+
		'&nbsp;&nbsp;[ <a href="javascript:void(0);" onclick="return deleteTime(this)">Delete</a> ]</div>';

		document.getElementById("TimeId").appendChild(div);

		changeVal(cm);
		return false;
	}
}
</script>




<div id="TimeId"></div>




<br>
<a href="javascript:void(0);" onclick="return addTime()">Dobaviti ese vremea</a>



<br><br><br>

<span id="toCM" style="font-size:32px;">0</span> unic times



</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 13.04.2010, 12:40
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Криво сделано, жуть
Когда удаляешь не последний элемент, то появляется ошибка в этой строке
m[m.length] = document.getElementById('time['+k+']').value;

она возвращает null. Догадываешься почему?
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 13.04.2010, 12:49
Новичок на форуме
Отправить личное сообщение для Serghei Посмотреть профиль Найти все сообщения от Serghei
 
Регистрация: 10.04.2010
Сообщений: 5

Я новичок в JS.
Пытаюсь правильно писать.

Я тоже понял что в этой строке проблема не знаю как исправить.

Помоги исправить.
Пожалуйста!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Opera отдаёт неправильный код функциональных клавиш. NT Man Opera, Safari и др. 1 19.01.2010 02:45
AHAH подгружает код из локального html-файла, но код в блоке не выполняется dimiork AJAX и COMET 0 13.10.2009 18:08
Расшифруйте код javascript sochinec Общие вопросы Javascript 7 01.08.2009 23:51
Как узнать динамический код страницы? gosha13 Общие вопросы Javascript 5 27.07.2009 13:31
Нужно получить конечный хтмл код must_have Работа 1 05.01.2009 16:59