Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Переадрессация по условию (https://javascript.ru/forum/dom-window/11420-pereadressaciya-po-usloviyu.html)

noodly90210 23.08.2010 01:11

Переадрессация по условию
 
Написал простенькую форму из двух чекбоксов и кноки. Ява скрипт проверяет не выбраны ли оба чек бокса сразу, если "не выбраны" то переходит на другую страницу. Вопрос вот в чем:
1. Почему в указанном месте (указал в коде) не происходит переходит на другую страницу, т.е после return true (если проверка прошла успешно).
2. Как узнать или оба чек бокса unchecked. В Java-Script есть только checked, а мне нужно именно "uncheked".

<form onsubmit="return checkForm(this);"> 
      <input type="hidden" /> 
            <input type="checkbox" name="a" value="music" id="myCheckbox1"/> Research 1<br/> 
            <input type="checkbox" name="b" value="TV" id="myCheckbox2"/> Research 2<br/> 
      <br/> 
      <input type="submit" value="Next" /> 
</form>

<script>

function checkForm(form) { 
      var type; // Атрибут type для input-ов 
      // Массив списка ошибок, по дефолту пустой 
      var errorList = []; 
      // Хэш с текстом ошибок (ключ - ID ошибки) 
      var errorText = { 
            1 : "Check only one kind of research!", 
            2 : "Check at seems one kind of research!", 
      } 
                              if ((document.getElementById('myCheckbox1').checked)&&(document.getElementById('myCheckbox2').checked)){ errorList.push(1)}
			      // Если массив ошибок пуст - возвращаем true
	   if (!errorList.length){
		    return true;	
		   window.location.href = "http://www.ghhtrhhrhrhcbh.ru";
	   //ВОТ ЭТО ПЕРЕАДРЕСАЦИЯ, НО ОНА ПОЧЕМУ-ТО НЕ РАБОТАЕТ
	    
	   }
	  
      // Если есть ошибки - формируем сообщение, выовдим alert 
      // и возвращаем false 
	   
      var errorMsg = "You make mistake:\n\n"; 
      for (i = 0; i < 1; i++) { 
            errorMsg += errorText[errorList[i]] + "\n"; 
      } 
      alert(errorMsg); 
	
      return false;
	  
	  }
	
</script>

Kos 23.08.2010 08:25

Цитата:

Сообщение от noodly90210 (Сообщение 68278)
2. Как узнать или оба чек бокса unchecked. В Java-Script есть только checked, а мне нужно именно "uncheked".

ну как бы если св-во checked == false - то, соответственно, галки нет

Цитата:

Сообщение от noodly90210 (Сообщение 68278)
Ява скрипт проверяет не выбраны ли оба чек бокса сразу

а почему бы не использовать элементы radio?

Цитата:

Сообщение от noodly90210 (Сообщение 68278)
if (!errorList.length){
    return true;   
    window.location.href = "http://www.ghhtrhhrhrhcbh.ru";
    //ВОТ ЭТО ПЕРЕАДРЕСАЦИЯ, НО ОНА ПОЧЕМУ-ТО НЕ РАБОТАЕТ
}

ну вот потому что return true; стоит, поэтому и не работает, ибо в этом месте происходит завершение выполнения функции :)

noodly90210 23.08.2010 16:14

Да, спасибо, логику теперь я понял, но вопрос остался: где расположить эту переадрессацию в коде, чтоб она работала?


Часовой пояс GMT +3, время: 05:18.