Форум русской поддержки Joomla!® CMS
07.12.2016, 14:35:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Ниспадающее меню (dropdown). Изменение списка

 (Прочитано 546 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Keylo
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« : 18.06.2015, 08:50:04 »

Добрый день.
Есть 2 выпадающих списка.
Первый содержит:
Меню 1
Меню 2
Меню 3

Во втором:
Опция 1
Опция 2
Опция 3
Опция 4

Как сделать, чтобы при выборе "меню 1" вываливались все из второго списка, а при выборе "меню 2", например, Опция 1, Опция 2, Опция 3, без четвертого?
Записан
Keylo
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #1 : 18.06.2015, 11:20:51 »

Сам написал, сам ответил.  Cheesy

Получилось через JavaScript
Необходимо добавить код в свойствах формы => "CSS и JavaScript" => "Javascript"

Код:
<script type="text/javascript">
 
function dynamic1(parent,child){

  var parent_array = new Array();
 
  parent_array[''] = ['Выберите пожалуйста'];
 
  parent_array['Меню 1'] = ['Опция 1','Опция 2','Опция 3','Опция 4'];
 
  parent_array['Меню 2'] = ['Опция 1','Опция 2','Опция 3'];
 
  parent_array['Меню 3'] = ['Сообщение'];
 
  var thechild = document.getElementById(child);
 
  thechild.options.length = 0;
 
  var parent_value = parent.options[parent.selectedIndex].value;
 
  if (!parent_array[parent_value]) parent_value = '';
 
  thechild.options.length = parent_array[parent_value].length;
 
  for(var i=0;i<parent_array[parent_value].length;i++){
 
    thechild.options[i].text = parent_array[parent_value][i];
 
    thechild.options[i].value = parent_array[parent_value][i];} }
 
</script>

и прописать в dropdown в дополнительных атрибутах
Код:
onchange="dynamic1(this,'ID динамического выпадающего меню');"

Всем спасибо, всем пока.  drink
« Последнее редактирование: 06.11.2015, 16:48:21 от Keylo » Записан
Keylo
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #2 : 06.11.2015, 16:52:37 »

Вот работоспособный показательный пример на html:

Код:
<html>
<head>
<title>ЖАБАСКРИПИТ</title>
<script type="text/javascript">
 
function dynamic1(parent,child){

  var parent_array = new Array();
 
  parent_array[''] = ['Выберите пожалуйста'];
 
  parent_array['Меню 1'] = ['Опция 1','Опция 2','Опция 3','Опция 4'];
 
  parent_array['Меню 2'] = ['Опция 1','Опция 2','Опция 3'];
 
  parent_array['Меню 3'] = ['Сообщение'];
 
  var thechild = document.getElementById(child);
 
  thechild.options.length = 0;
 
  var parent_value = parent.options[parent.selectedIndex].value;
 
  if (!parent_array[parent_value]) parent_value = '';
 
  thechild.options.length = parent_array[parent_value].length;
 
  for(var i=0;i<parent_array[parent_value].length;i++){
 
    thechild.options[i].text = parent_array[parent_value][i];
 
    thechild.options[i].value = parent_array[parent_value][i];} }
 
</script>
</head>
<body>
<select name="test1" id="test1" onchange="dynamic1(this,'test2')">
  <option value="Меню 1">Меню 1</option>
  <option value="Меню 2">Меню 2</option>
  <option value="Меню 3">Меню 3</option>
  <option value="Меню 4">Меню 4</option>
</select>
<select name="test2" id="test2">
<option></option>
</select>
</body>
</html>
Записан
rk3dnp
Давно я тут
****

Репутация: +5/-0
Offline Offline

Сообщений: 321


« Ответ #3 : 07.11.2015, 22:53:18 »

Оказывается у них есть встроена такая фича, отображать и прятать другие элементы при выборе одного из варианта. Переходим в настройки Extras - Condition fields (3 с низу пункт)
Указываем какой пункт отобразить или скрыть в случае выбора значение у другого пункта.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet