Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрыть показать блок при выбора пункта из списка (https://javascript.ru/forum/dom-window/41663-skryt-pokazat-blok-pri-vybora-punkta-iz-spiska.html)

nurik2120 24.09.2013 10:08

Скрыть показать блок при выбора пункта из списка
 
Здравствуйте не могли помочь со скриптом надо что бы показывались и скрывались блоки при выборе из списка значения

<select id="CategoryTree"  name="category_sid[tree][1]">
	<option value="0">Все категории</option>
	<option selected="selected" title="/Car/" value="4"> &nbsp; &nbsp;Автомобили(3)</option>
         <option title="/Motorcycle/" value="8">&nbsp; &nbsp;Мотоциклы(2)</option>
          <option title="/Trucks/" value="13">&nbsp; &nbsp;Грузовики(1)</option>
</select>


<div id="avto" style="display:block">инфо об Автомобилях</div>
<div id="moto"  style="display:none">инфо о Мото</div>
<div id="trucks"  style="display:none">инфо о Грузовиках</div>

рони 24.09.2013 10:20

nurik2120,
Это уже неинтересно

nurik2120 24.09.2013 20:42

Цитата:

Сообщение от рони (Сообщение 273398)

Спасибо за ссылку но там не нашел подходящего примера а именно там у списка значение value идет по порядку а у меня в разброс.. примерно подошел бы этот скрипт

<!DOCTYPE html>
	<html>
	<head>
	<style>
	select, div {
	display: inline-block;
	}
	</style>
	</head>
	<body>
	<select id="first">
	 <option value="0" selected disabled>Не выбрано</option>
	 <option value="1">Авто\Мото</option>
	 <option value="2">Компьютеры</option>
	 <option value="3">Знакомство</option>
	</select>
	<div id="second"></div>
	<script>
	var autos = 'BMW X5, Jaguar F5, Lamborgini Italian'.split(', ');
	var computers = 'Windows, Mac, Linux'.split(', ');
	var connexions = 'Love, Meeting, Sex'.split(', ');
	document.getElementById('first').onchange = function(){
	    var str = '';
	    if (this.value == 1) {
	        for (var i = 0; i < autos.length; i++) {
	            str += '<option value="i">' + autos[i];   
        }
	    } else if (this.value == 2) {
	        for (var i = 0; i < computers.length; i++) {
            str += '<option value="i">' + computers[i];   
	        }
	    } else if (this.value == 3) {
       for (var i = 0; i < connexions.length; i++) {
            str += '<option value="i">' + connexions[i];   
	        }
	    } else return false;
	    document.getElementById('second').innerHTML = '<select>' + str + '</select>';
	}
	</script>
	</body>
	</html>


но тут при выборе из списка значения выходит другой список а мне над что бы менялся стиль у блока на display="block"

Спасибо за внимание

рони 24.09.2013 21:38

nurik2120,
:cray: :cray: :cray:
<!DOCTYPE HTML>
<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<select id="CategoryTree"  name="category_sid[tree][1]">
<option value="0">Все категории</option>
<option selected="selected" title="/Car/" value="4"> &nbsp; &nbsp;Автомобили(3)</option>
<option title="/Motorcycle/" value="8">&nbsp; &nbsp;Мотоциклы(2)</option>
<option title="/Trucks/" value="13">&nbsp; &nbsp;Грузовики(1)</option>
</select>
<div id="avto" style="display:block">инфо об Автомобилях</div>
<div id="moto"  style="display:none">инфо о Мото</div>
<div id="trucks"  style="display:none">инфо о Грузовиках</div>
<script>
document.getElementById("CategoryTree")
    .onchange = function () {
        var b = {
            4: "avto",
            8: "moto",
            13: "trucks"
        }, c = this.value,
            a;
        for (a in b) document.getElementById(b[a])
            .style.display = 0 == c || c == a ? "block" : "none"
};
</script>
</body>
</html>

AnimalInstinct 11.06.2014 00:04

Помогите плиз, сижу уже третий день с этой проблемой :) Делаю каталог недвижки, и нужно фильтровать по двум селектам, то есть выбираем сезон, выбираем срок аренды - и нам показывается один из 9 поисков по 9 ценам. В общем все работает нормально, но только на Feedler , на сайте работать не хочет ни в какую. Сайт тут .

Ошибок при загрузке JQuery нет, при загрузке скрипта тоже, он грузится отдельным select.js

Вот такой вот код:
HTML:
<select id="term" name="form_select">
    <option value="0">Choose term</option>
    <option value="1">Month</option>
    <option value="2">Week</option>
    <option value="3">Day</option>
</select>
<select id="season" name="form_select">
    <option value="0">Choose season</option>
    <option value="1">Low</option>
    <option value="2">Hight</option>
    <option value="3">Peak</option>
</select>

<div id="ad_lowmonth">tr_ad_lowmonth</div>
<div id="ad_lowweek">tr_ad_lowweek</div>
<div id="ad_lowday">tr_ad_lowday</div>
<div id="ad_hightmonth">tr_ad_hightmonth</div>
<div id="ad_hightweek">tr_ad_hightweek</div>
<div id="ad_hightday">tr_ad_hightday</div>
<div id="ad_peakmonth">tr_ad_peakmonth</div>
<div id="ad_peakweek">tr_ad_peakweek</div>
<div id="ad_peakday">tr_ad_peakday</div>

JS:
$('#term, #season').on('change', function() {
 $('div[id^="ad_"]:gt(3)').css("display","none");

      var term   = $.trim( $('#term :selected').text().toLowerCase() ),
      season = $.trim( $('#season :selected').text().toLowerCase() );
 if($('#term :selected').val() > 0 && $('#season :selected').val() > 0)   {
          var $sel = '#ad_' + season + term;
          $($sel).css("display","block");

   }

});

CSS:
#ad_lowmonth,
#ad_lowweek,
#ad_lowday,
#ad_hightmonth,
#ad_hightweek,
#ad_hightday,
#ad_peakmonth,
#ad_peakweek,
#ad_peakday {
display:none;
}

рони 11.06.2014 00:32

AnimalInstinct,
Цитата:

Сообщение от AnimalInstinct
В общем все работает нормально, но только на Feedler

а вы посмотрите код на Feedler который работает и сравните с вашим тамже на на Feedler

AnimalInstinct 11.06.2014 00:52

Цитата:

Сообщение от рони (Сообщение 316023)
AnimalInstinct,

а вы посмотрите код на Feedler который работает и сравните с вашим тамже на на Feedler

Ок, вставил прямо из браузера, все работает - Fiddle

рони 11.06.2014 00:57

AnimalInstinct,
вы посмотрите код который в Result находится может наведёт на какие мысли

AnimalInstinct 11.06.2014 01:00

Еще проблема тоже непонятно почему при первом выборе двух селектов показывается DIV , выбираем во втором селекторе например другой вариант, открывается новый DIV , а предыдущий не исчезает, хотя по идее он должен стать display:none

AnimalInstinct 11.06.2014 01:03

Цитата:

Сообщение от рони (Сообщение 316026)
AnimalInstinct,
вы посмотрите код который в Result находится может наведёт на какие мысли

Что то не наводит ни на какие мысли , я бы иначе не спрашивал :) Может он кого более знающего на мысли наведет. :)


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