2009-02-05 5 views
0

Установите флажки 1-300. Эта функция JS предупреждает пользователя, когда ничего не выбрано. Функция отлично работает для первых 290 элементов. Например, когда выбран пункт 291, он предупреждает, что ничего не выбрано. document.checks.user.length выходит до 298, не уверен, почему это так. Какие-либо предложения? Благодарю.Проверка и длина флажка Javascript

function sub_delete() //Submit & Validation for delete 
{ 
    alert (document.checks.user.length); 298? 

    for (i = 0; i < document.checks.user.length; i++) //for all check boxes 
    { 
     if (document.checks.elements[i].name == "user" && document.checks.elements[i].checked == true) //otherwise elements also looks at radio buttons 
     { 
      document.checks.submit(); 
      return 0; 
     } 
    } 

    //If we get here no delete was (true) selected 
    alert ("Select Data to Delete"); 
    return 0; 
} 
+0

Этот раздел не был отформатирован, потому что он не считался «кодом». Вероятно, вам нужно нажать пробел или вкладку перед текстом (как это делается автоматически, когда вы нажимаете значок «Код». – Zabbala

+0

Как выглядит ваша разметка? –

ответ

1

Вы не смотрите на то же, что и вы перебираете.

for (i = 0; i < document.checks.user.length; i++) //for all check boxes 
{ 
    if (document.checks.user[i].name == "user" && document.checks.user[i].checked == true) //otherwise elements also looks at radio buttons 
    { 
      document.checks.submit(); 
      return 0; 
    } 
} 

Попробуйте это вместо этого.

Для этого много элементов, вероятно, лучше не пересчитывать .length каждый раз тоже.

+0

Спасибо. Не знал, что я могу индексировать по имени ввода «пользователь [ i] ". Я взял эту строку больше не имеет смысла, document.checks.user [i] .name ==" user "(мой html

1

Вы повторяете элементы document.checks.user, однако вы проверяете document.checks.elements [i] на имя и значение ('checked-ness').

Смежные вопросы