#javascript
#javascript
Вопрос:
Здравствуйте
у меня есть функция JS, которая говорит
for(var i = 0; i < document.calDailyBlock.selFilCheckBox.length; i )
{
if(document.calDailyBlock.selFilCheckBox[i].checked)
{
filteredInitId = document.calDailyBlock.selFilCheckBox[i].value ",";
alert(filteredInitId);
isProjCheck = true;
}
}
document.calDailyBlock.filteredComId.value = filteredInitId;
Когда на странице нет флажков, и я пытаюсь нажать на кнопку Filter, которая вызывает эту функцию, я получаю сообщение об ошибке «document.calDailyBlock.selFilCheckBox.length’ равно нулю или не является объектом»
Есть ли какая-нибудь простая вещь, которую я могу добавить в эту функцию?
Также кто-нибудь может мне помочь, как проверить, есть ли только один флажок на одной странице?
Заранее спасибо
Ответ №1:
Я думаю, вы полагаетесь на довольно неясную (неофициальную) функцию некоторых браузеров, которая позволяет вам получать элемент из документа, как если бы это был атрибут. Другими словами, вы собираетесь:
document.calDailyBlock
Это поиск в документе переменной calDailyBlock
. Вместо этого вам следует использовать стандартизированный getElementById
:
document.getElementById("calDailyBlock")
И используйте тот же подход для получения selFilCheckBox
.
Это вернет значение null, если calDailyBlock
или selFilCheckBox
не найдены. Прежде чем вы начнете вызывать length
их (что приводит к этой ошибке), вы должны проверить, получили ли вы обратно null, а затем (я полагаю) беззвучно завершите работу (ничего не делайте).
Ответ №2:
чтобы избежать ошибки, используйте if:
if(document.calDailyBlock.selFilCheckBox) {
for(var i = 0; i < document.calDailyBlock.selFilCheckBox.length; i )
{ … }
}