Javascript.RU

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

Сделать видимым select...
Я хочу сделать связанные списки, они динамически заполнены, первый список виден, остальные скрыты,что бы при выборе нужного элемента из первого, сделать видимым, только соответствующий ему список. Подскажите пожалуйста, как можно сделать, что бы нужный элемент был виден. Возможно я не так прописываю свойство objSel.document.style.display='';, потому что у меня оно не срабатывает???

функция javascript:
function fn_select_option(el)   {
	var sel = el.options[el.selectedIndex].innerHTML;
        sel.selected=true;
        var objSel = document.getElementById(sel);
        objSel.document.style.display='';
}


взаимосвязанные списки:

<select id="my_select[]" onchange="fn_select_option(this) " >
     <option value="select">Выберите опцию:) </option>
      {foreach from=$product_options item="option" name="vibor_r" }
      <option value="$option.option_name}{$option.option_name}</option>
       {/foreach}
</select>
		
{foreach from=$product_options item="option" name="vibor" }
<select id="{$option.option_name}" style="display:none" >
	{foreach from=$option.variants item="variant"}
	<option class="{$variant.variant_id}" value="{$variant.variant_id}">   {$variant.variant_name}</option>
	{/foreach}
</select>	
{/foreach}
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2011, 01:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Anneta,
objSel.document.style.display=''; красное лишнее
sel.selected=true; а эта странная )))

Последний раз редактировалось рони, 12.01.2011 в 01:32.
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2011, 08:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Anneta, сделай нормальный хтмл пример, на нём можно будет показать чего и как.
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2011, 16:36
Новичок на форуме
Отправить личное сообщение для Anneta Посмотреть профиль Найти все сообщения от Anneta
 
Регистрация: 11.01.2011
Сообщений: 3

<html>
<head>
<title> title</title>
<script>
function fn_select_option(el)   {
 var sel = el.options[el.selectedIndex].innerHTML;
 var objSel = document.getElementById(sel);
 objSel.style.display='';
}
</script>
</head>
<body>
<form method="post" action="">
<select id="my_select" onchange="fn_select_option(this);" >
    <option value="A">A</option>
	<option value="B">B</option>
</select>
</br>
<select id="A"  style="display:none">
    <option value="1">1 </option>
	<option value="2">2</option>
</select>
<select id="B"  style="display:none">
    <option value="11">11 </option>
	<option value="12">12</option>
</select>        
</form>
</body>
</html>


Вот набросала пример, о чем спрашивала, в таком виде получается, скрытые списки показываются.

В смарти же, у меня все значения динамически подгружаются с помощью цикла foreach, как в первом примере.

Мне нужно сделать связанные списки, что бы при выборе элемента из первого списка появлялся бы второй список,
с соответствующими ему элементами. Я хотела скрыть дочерние списки, и при выборе элемента из первого списка
показывать соответствующий связанный список. Может кто нибудь сможет, что нибудь подсказать, заранее спасибо)
Ответить с цитированием
  #5 (permalink)  
Старый 12.01.2011, 16:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Anneta
Я хотела скрыть дочерние списки, и при выборе элемента из первого списка
показывать соответствующий связанный список.
Оно?

<!DOCTYPE html>
<html>
<head>
<title> title</title>
<script>
function fn_select_option(el)   {
	var sel = el.options[el.selectedIndex].innerHTML;
	var objSel = document.getElementById(sel);
	var o=document.getElementById('container')
	o=o.getElementsByTagName('select')
	var i
	for (i=0; i<o.length; i++) {
		o[i].style.display='none'
	}
	objSel.style.display='';
}
</script>
</head>
<body>
<form method="post" action="">
<select id="my_select" onchange="fn_select_option(this);" >
    <option value="A">A</option>
	<option value="B">B</option>
</select>
<div id='container'>
	<select id="A"  style="display:none">
	    <option value="1">1 </option>
		<option value="2">2</option>
	</select>
	<select id="B"  style="display:none">
	    <option value="11">11 </option>
		<option value="12">12</option>
	</select>        
</div>
</form>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 12.01.2011, 17:20
Новичок на форуме
Отправить личное сообщение для Anneta Посмотреть профиль Найти все сообщения от Anneta
 
Регистрация: 11.01.2011
Сообщений: 3

Оно как раз то что нужно, но к сожалению в смарти, почему то не работает.
такое ощущение как будто нет реакции на установку в javascript значения
objSel.style.display=' ';
?!?
Ответить с цитированием
  #7 (permalink)  
Старый 12.01.2011, 19:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Вариант ...
<!DOCTYPE html>
<html>
<head>
<title> title</title>
<script>
function fn(b) {
    var a = "AB";
        a = a.split("");
        for (i = 0; i < a.length; i++) document.getElementById(a[i]).style.display = a[i] == b ? "" : "none"
   };
</script>
</head>
<body>
<form method="post" action="">
<select id="my_select" onchange="fn(this.value);" >
    <option value="">change</option>
    <option value="A">A</option>
	<option value="B">B</option>
</select>
<div id='container'>
	<select id="A"  style="display:none">
	    <option value="1">1</option>
		<option value="2">2</option>
	</select>
	<select id="B"  style="display:none">
	    <option value="11">11</option>
		<option value="12">12</option>
	</select>
</div>
</form>
</body>
</html>

Последний раз редактировалось рони, 12.01.2011 в 19:32.
Ответить с цитированием
  #8 (permalink)  
Старый 12.01.2011, 21:21
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Anneta
в смарти, почему то не работает
Не понял, где не работает?
Сообщение от Anneta
objSel.style.display=' ';
У тебя там пробел? Нужно пустышку ('') туда присваивать...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с зависящими select RevivaL Общие вопросы Javascript 10 15.12.2010 14:37
Проблема с динамическим формированием select elepsion jQuery 1 31.10.2010 14:31
Сделать задание для меня Select help_me Работа 6 08.10.2010 08:04
Сделать список multiple select с сортировкой элементов Nargiza Элементы интерфейса 2 17.08.2010 14:44
Продлема с получением данных из select Tartyga Общие вопросы Javascript 10 05.08.2009 22:13