Показать сообщение отдельно
  #1 (permalink)  
Старый 11.03.2010, 17:46
Интересующийся
Отправить личное сообщение для Катерина Посмотреть профиль Найти все сообщения от Катерина
 
Регистрация: 20.01.2010
Сообщений: 20

Верификация формы перед отправкой
У меня возникла проблема в проверке формы перед отправкой.
Есть 14 чекбоксов и 28 зависимых от них столбцов (от 2 до 29):
<form name="rinochnaya_information" method="post" action="">  
 <table id="tbl"><tr>  
          <td colspan="2">Заголовок "Регион"</td>  
          <td colspan="2<input type="checkbox" name="region" id="reg2" value="Регион1">Регион1</td>  
          <td colspan="2><input type="checkbox" name="region" id="reg4" value="Регион2>Регион2</td>  
..................................................        
        <td colspan="2"><input type="checkbox" name="region" id="reg28" value="Регион14">Регион14</td>  
        </tr>  
        <tr>  
       <td>Заголовок</td>  
       <td>Заголовок</td>  
           <td>Заголовок 2 (для региона 1.1)</td>  
           <td>Заголовок 3 (для региона 1.2)</td>      
           <td>Заголовок 4 (для региона 2.1)</td>  
           <td>Заголовок 5 (для региона 2.2)</td>  
 .....................................................................................  
           <td>Заголовок 28 (для региона 14.1)</td>  
           <td>Заголовок 29 (для региона 14.2)</td>  
        </tr>  
.....................................................................................

Т.е. от каждого чекбокса зависит 2 столбца. Поэтому я поставила им id reg 2,4,6...28.
От reg2 зависит r[i][2] и r[i][3], от reg4-r[i][4] и r[i][5], ..., reg28-r[i][28] и r[i][29].
Получила закономерность от reg[k] зависит r[i][k] и r[i][k+1]. Тогда при каждом проходе в цикле увеличивая k+2, должна получать то, что надо.
Пытаюсь все это сделать в функции:
function Proverit(){
 var r_info=new Array();
 dlina=document.all.tbl.rows.length-3;   // вычисляю параметр изменения для i, как кол-во строк таблицы  и отнимаю 3, т.к цикл начинается с 0 и 2 верхние строки-заголовки
 for (i=0;i<=dlina;i++){
   r_info[i]=new Array();
 };
for (k=2;k<=28;k+2){
   if(document.getElementById("reg" + k).checked == true){
     for (i=0;i<=dlina;i++){
           r_info[i][k]=document.getElementById('r'+i+k).value;
           r_info[i][k+1]=document.getElementById('r'+i+(k+1)).value;
             if (r_info[i][k]=="" || r_info[i][k+1]==""){
               alert("В выбранном Вами регионе: "+ document.getElementById("reg" + k).value + " не введены данные! Введите данные");
               document.getElementById('r'+i+k).focus();
               return false;                 
             };                    
     };    
   };
};
return true; 
};

Если выбран Регион1 с id="reg2", то проверка осуществляется.Во всех остальных случаях (не выбран ни один из регионов, выбран любой другой регион, ....) все на долго виснет и выдаёт ошибку "Сценарий на данной странице замедляет работу EI. При продолжении выполнения сценария компьютер может не реагировать. Прервать сценарий."
Что не так? Как исправить?
Ответить с цитированием