Непонятная работа браузера

KolyaA

Guest
Непонятная работа браузера

Имеется форма на самом верху которой находится группа чекбоксов, ниже текст и другая ерунда и в самом низу кнопка сабмит.

При нажатии сабмита производится проверка выбран ли хотя бы один чекбокс . Она выполняется следующим образом:

<FORM ..... onSubmit="return Verification()">
</FORM>

где функция verification() имеет такой вид:
PHP:
function Verification()
{
  var e = document.MainForm.elements;
  var OutputIncluded = false;

  for(i=0;i<e.length;i++) 
  {  

     if((e[i].name=='outputcolumn[]')&&(e[i].checked))
      OutputIncluded = true; 
  }    

  if (OutputIncluded==false)
  {  
    alert("No parameters were choosen for output\n"+
          "       Choose even one parameter "); 
    return false;
  }
 }
Так вот у меня имеется один выбранный чекбокс. Пока на экране видны и чекбоксы и кнопка сабмит - все работает прекрасно . То есть никаких сообщений не выдается. Если же сместиться сильно вниз , так что сабмит оказывается на самом верху страницы, то, несмотря на выбранный чекбокс, срабатывает сообщение. То есть, вроде как броузер не видит эту галочку.

Кто-нибудь может подсказать в чем может быть дело и как с этим можно бороться? (браузер opera 7.23)
 

Cid

...двинутый новичок
PHP:
if((e[i].name=='outputcolumn[]')&&(e[i].checked)) 
      OutputIncluded = true;
Вот элемент с индексом 0 у тебя отмечен, и OutputIncluded равен true, все хорошо. А что у тебя будет если элемент с индексом 1 не отмечен? правильно, OutputIncluded станет false. Так что все у тебя решает значение последнего элемента в списке. Перепиши так:

PHP:
if((e[i].name=='outputcolumn[]')&&(e[i].checked)) 
{
      OutputIncluded = true; 
      break;
}
Т.е. если хоть один элемент удоволетворяет условию сабмита, то дальнейшую проверку можно опустить.
 

KolyaA

Guest
Согласен break можно было бы поставить, но у меня в цикле проверяются и другие условия, поэтому я его не ставлю. И Если элемент с индексом 1 не отмечен, то OutputIncluded не становится false.(специально это сейчас проверил)

-~{}~ 26.07.04 15:39:

Сейчас еще сделал проверку - оказывается он видит только те галочки, которые в поле экрана

-~{}~ 26.07.04 15:44:

А те что за пределами экрана бывает видит, а бывает нет
 

Cid

...двинутый новичок
а если обращаться через document.forms('MainForm') ?
 

KolyaA

Guest
То же самое. Может это глюк браузера. Кто-нибудь интересно встречался с подобным?
 
Сверху