Показать сообщение отдельно
  #1 (permalink)  
Старый 04.10.2014, 14:03
Новичок на форуме
Отправить личное сообщение для samgreenchik Посмотреть профиль Найти все сообщения от samgreenchik
 
Регистрация: 08.09.2014
Сообщений: 4

Проблемы с select в каскадном списке
Здравствуйте форумчане!

Пишу скрипт перехода на страницу сайта в зависимости от выбора значений в двух выпадающих списках. Списки каскадные. Вроде все получилось, но после первого перехода все останавливается, значение второго списка не подгружаются. Перезагрузка страницы не помогает, нужно заново открывать сайт.

Интуитивно понимаю что где-то в переменной остается значение, которое нужно обнулить при загрузке новой страницы, но как это реализовать еще не додумался. Может кто сможет подсобить?

Полный код страницы:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="js/jquery-1.3.1.js" type="text/javascript"></script>
<style type="text/css">

label {
  padding-left: 5px;
}
select {
  width: 130px;
  font-family: Georgia, Times, "Times New Roman", serif;
  font-size: 9pt;
  color: #000;
}
</style>
<script type="text/javascript">
(function($){
  // очищаем select
  $.fn.clearSelect = function() {
	  return this.each(function(){
		  if(this.tagName=='SELECT') {
		      this.options.length = 0;
		      $(this).attr('disabled','disabled');
		  }
	  });
  }
  // заполняем select
  $.fn.fillSelect = function(dataArray) {
	  return this.clearSelect().each(function(){
		  if(this.tagName=='SELECT') {
			  var currentSelect = this;
			  $.each(dataArray,function(index,data){
				  var option = new Option(data.text,data.value);
				  if($.support.cssFloat) {
					  currentSelect.add(option,null);
				  } else {
					  currentSelect.add(option);
				  }
			  });
		  }
	  });
  }
})(jQuery);
</script>
<script type="text/javascript">
$(document).ready(function(){

  // выбор улицы
  function adjustAuto(){
  	var countryValue = $('#country').val();
  	var tmpSelect = $('#auto');
  	if(countryValue.length == 0) {
  		tmpSelect.attr('disabled','disabled');
  		tmpSelect.clearSelect();
  		
  	} else {
  		$.getJSON('cascadeSelectAuto.php',{country:countryValue},function(data) { tmpSelect.fillSelect(data).attr('disabled','');  });
  		
  	}
  };
  
 
// По прикидкам обнуление нужно делать в коде ниже
	
  $('#country').change(function(){
  	adjustAuto();
  }).change();
  $('#auto').change(function(){
 	//Переход на нужную страницу в зависимости от значений в двух селектах
  	if($('#country').val()+$('#auto').val()== 11) { window.location.href='http://site.com/site1.html';}
  	if($('#country').val()+$('#auto').val()== 12) { window.location.href='http://site.com/site2.html';}
  	 
  });

});
</script>
</head>
<body>
  <div class="border">
  <label>Страна</label><br />
  <select id="country">
    <option value="">Выберите Ваш город</option>
    <option value="1">Пекин</option>
    <option value="2">Минск</option>
    <option value="3">Сеул</option>
  </select>
  </div>
  <div class="border">
  <label>Выберите улицу</label><br />
  <select id="auto" disabled="disabled"></select>
  </div>
 </body>
</html>
Ответить с цитированием