Скрыть показать блок при выбора пункта из списка
Здравствуйте не могли помочь со скриптом надо что бы показывались и скрывались блоки при выборе из списка значения
<select id="CategoryTree" name="category_sid[tree][1]">
<option value="0">Все категории</option>
<option selected="selected" title="/Car/" value="4"> Автомобили(3)</option>
<option title="/Motorcycle/" value="8"> Мотоциклы(2)</option>
<option title="/Trucks/" value="13"> Грузовики(1)</option>
</select>
<div id="avto" style="display:block">инфо об Автомобилях</div>
<div id="moto" style="display:none">инфо о Мото</div>
<div id="trucks" style="display:none">инфо о Грузовиках</div>
|
nurik2120,
Это уже неинтересно |
Цитата:
<!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" Спасибо за внимание |
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"> Автомобили(3)</option>
<option title="/Motorcycle/" value="8"> Мотоциклы(2)</option>
<option title="/Trucks/" value="13"> Грузовики(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>
|
Помогите плиз, сижу уже третий день с этой проблемой :) Делаю каталог недвижки, и нужно фильтровать по двум селектам, то есть выбираем сезон, выбираем срок аренды - и нам показывается один из 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;
}
|
AnimalInstinct,
Цитата:
|
Цитата:
|
AnimalInstinct,
вы посмотрите код который в Result находится может наведёт на какие мысли |
Еще проблема тоже непонятно почему при первом выборе двух селектов показывается DIV , выбираем во втором селекторе например другой вариант, открывается новый DIV , а предыдущий не исчезает, хотя по идее он должен стать display:none
|
Цитата:
|
| Часовой пояс GMT +3, время: 04:11. |