Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.06.2011, 19:21
Новичок на форуме
Отправить личное сообщение для grenader Посмотреть профиль Найти все сообщения от grenader
 
Регистрация: 15.06.2011
Сообщений: 6

связанный селект ссылка syncList.dataList
Доброго времени суток, форумчане.Я здесь новый , не пинайте ногами-помогите делом.

Существует скрипт, который меня полностью устраивает. Есть одно "но" -
не могу понять как сделать кнопку, которая будет отправлять пользователя на страницу по ссылке, привязаной к конкретному пункту селекта из syncList1.dataList .

Т.е я пытаюсь сделать кнопку, нажав по которой пользователь перейдет по ссылке на выбранный элемент из списка.

Пытаюсь через
window.location='new_url';
т.е примерно так
onchange="window.location.href=this.options[this.selectedIndex].value;"
. Не получается. Прошу помощи.

вот Разметка HTML

<html>
  <head>
  <title>Связанные селекты</title>
  
  <!-- Подключаем javascript-библиотеку функций -->
  <script type="text/javascript" src="linkedselect.js"></script>
</head>

<body>

<!-- Первый (главный) список (изначально заполнен вручную) -->
  <select id="List1">
    <option value="empty"> Выберите категорию </option>
    <option value="50cc"> 50cc </option>
  </select>
  
<!-- Подчиненный список 1 (изначально пуст) -->
  <select id="List2"></select>
  
<!-- Подчиненный список 2 (изначально пуст) -->
  <select id="List3"></select>
  
<script type="text/javascript">
// Создаем новый объект связанных списков
var syncList1 = new syncList;

// Определяем значения подчиненных списков (2 и 3 селектов)
syncList1.dataList = {



/* Определяем элементы второго списка в зависимости 
от выбранного значения в первом списке */

  '50cc':{
      '50cc_empty':'Выберите марку',
      '50cc_yamaha':'Yamaha',
      '50cc_honda':'Honda'
  },
  



/* Определяем элементы третьего списка в зависимости 
от выбранного значения во втором списке */

  '50cc_yamaha':{
      '50cc_yamaha_empty':'Выберите модель',
      '50cc_yamaha_jog':'jog',
      '50cc_yamaha_aerox':'aerox'
  },
  
  '50cc_honda':{
    '50cc_honda_empty':'Выберите модель',
    '50cc_honda_dio':'dio',
    '50cc_honda_giorno':'giorno'
  }
  

};



// Включаем синхронизацию связанных списков
syncList1.sync("List1","List2","List3");
</script>

</body>
</html>


И собственно файл linkedselect.js

function syncList(){} 

syncList.prototype.sync = function() 
{ 
   
    for (var i=0; i < arguments.length-1; i++)    document.getElementById(arguments[i]).onchange = (function (o,id1,id2){return function(){o._sync(id1,id2);};})(this, arguments[i], arguments[i+1]); 
    document.getElementById(arguments[0]).onchange();
} 

syncList.prototype._sync = function (firstSelectId, secondSelectId) 
{ 
    var firstSelect = document.getElementById(firstSelectId); 
    var secondSelect = document.getElementById(secondSelectId); 

    secondSelect.length = 0; 
     
    if (firstSelect.length>0)
    { 
          
        var optionData = this.dataList[ firstSelect.options[firstSelect.selectedIndex==-1 ? 0 : firstSelect.selectedIndex].value ]; 
        
        for (var key in optionData || null) secondSelect.options[secondSelect.length] = new Option(optionData[key], key); 
         
        
        if (firstSelect.selectedIndex == -1) setTimeout( function(){ firstSelect.options[0].selected = true;}, 1 ); 
        
        if (secondSelect.length>0) setTimeout( function(){ secondSelect.options[0].selected = true;}, 1 ); 
    } 
    
    secondSelect.onchange && secondSelect.onchange(); 
};

Последний раз редактировалось grenader, 16.06.2011 в 19:08.
Ответить с цитированием
  #2 (permalink)  
Старый 17.06.2011, 14:28
Новичок на форуме
Отправить личное сообщение для grenader Посмотреть профиль Найти все сообщения от grenader
 
Регистрация: 15.06.2011
Сообщений: 6

Ну что, никто не сможет?
Неделю мучаюсь, чесслово!!! очень нужен скрипт.
Ответить с цитированием
  #3 (permalink)  
Старый 20.06.2011, 07:33
Кандидат Javascript-наук
Отправить личное сообщение для `p r o x y Посмотреть профиль Найти все сообщения от `p r o x y
 
Регистрация: 04.05.2009
Сообщений: 105

<select id="list"> 
	<option value="google.ru">google.ru</option> 
	<option value="yandex.ru">yandex.ru</option> 
</select>
<a href="#" title="" onclick="openURL(); return false;">Открыть</a>


<script type="text/javascript">
	function openURL(){
		var select = document.getElementById('list');
		//window.location = 'http://'+objSel.options[objSel.selectedIndex].value;
		window.open('http://'+select.options[select.selectedIndex].value, 'Window title');
	}
</script>


Вот пример, от него и "плящите".
Ответить с цитированием
  #4 (permalink)  
Старый 26.07.2014, 18:11
Новичок на форуме
Отправить личное сообщение для Guest70 Посмотреть профиль Найти все сообщения от Guest70
 
Регистрация: 26.07.2014
Сообщений: 5

Подскажите, пожалуйста, как под каждым из списков выводить текст выбранного value?
То есть, чтобы в итоге получить строку "Результат1 Результат2 Результат3"

Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический селект alkelar Общие вопросы Javascript 1 05.07.2011 10:43
ссылка с fadeIn работает через раз oblomov86 jQuery 1 24.03.2011 17:52
Как повлиять на селект arma Элементы интерфейса 3 01.03.2011 08:40
Подскажите по CSS меню Александр_1988 Элементы интерфейса 1 17.05.2010 11:58