Исправить код
Помогите исправить код.
Если удалить последний 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>'+ ' [ <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> |
Криво сделано, жуть
Когда удаляешь не последний элемент, то появляется ошибка в этой строке m[m.length] = document.getElementById('time['+k+']').value; она возвращает null. Догадываешься почему? |
Я новичок в JS.
Пытаюсь правильно писать. Я тоже понял что в этой строке проблема не знаю как исправить. Помоги исправить. Пожалуйста! |
Часовой пояс GMT +3, время: 22:55. |