Javascript.RU

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

Скрыть/показать элементы в зависимости от значения select
Добрый день, есть html код:
<select name="select1" id="select1" onchange="change_select(this)">
 <option value="">Диагностическая карта</option>
 <option id="e1" value="Она мне не нужна" >Она мне не нужна</option>
 <option id="e2" value="У меня есть">У меня есть</option>
 <option id="e3" value="Мне нужна дигностическая карта">Мне нужна дигностическая карта</option>
</select>

<select name="select2" id="select2" onchange="change_select(this)" style="display:none">
<option value=21>secet21</option>
<option value=22>secet22</option>
</select>

<select name="select3" id="select3" onchange="change_select(this)" style="display:none">
<option value=31>secet31</option>
<option value=32>secet32</option>
</select>

<select name="select4" id="select4" onchange="change_select(this)" style="display:none">
<option value=41>secet41</option>
<option value=42>secet42</option>
</select>


<select name="select5" id="select5" onchange="change_select(this)" style="display:none">
<option value="">Тип кузова</option>
	<option value="4200">Седан</option>
	<option value="4203">Хетчбэк</option>
</select>


К нему скрипт:

function change_select(elem) {
	var thisId = $(this).attr("id");
	switch (thisId) {
       case ("e1"):
           document.getElementById('select4').style.display= 'none';
		   document.getElementById('select3').style.display= 'none';
           document.getElementById('select2').style.display = 'inline';
           break;
		   
		case ("e2"):
           document.getElementById('select4').style.display= 'none';
		   document.getElementById('select3').style.display= 'inline';
           document.getElementById('select2').style.display = 'none';
           break;
       
       case ("e3"):
           document.getElementById('select2').style.display = 'none'
		   document.getElementById('select3').style.display= 'none';
           document.getElementById('select4').style.display = 'inline';
           break;
       
       default:
         break;
   }
}


Раньше, заместь switch (thisId) было switch (elem.val), и в первом select option заместь id="e1" было value="e1"
Все работало, попытался переделать на ID и вот что-то не получается

Подскажите, пожалуйста, как сделать парвильно
Ответить с цитированием
  #2 (permalink)  
Старый 22.02.2017, 11:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,218

Сообщение от sim4ik-one
как сделать парвильно
Понятие "правильно" весьма расплывчатое...
Как вариант

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
.test {
	display: none;
}
</style>
<script type='text/javascript'>
$(function(){
	$('#select1').change(function(){
		$('.test').hide();
		var id=this.options[this.selectedIndex].id;
		$('.'+id).show();
	});
});
</script>
</head>
<body>
<select name="select1" id="select1">
	<option value="">Диагностическая карта</option>
	<option id="e1" value="Она мне не нужна" >Она мне не нужна</option>
	<option id="e2" value="У меня есть">У меня есть</option>
	<option id="e3" value="Мне нужна дигностическая карта">Мне нужна дигностическая карта</option>
</select>
<select name="select2" class='test e1'>
	<option value=21>secet21</option>
	<option value=22>secet22</option>
</select>
<select name="select3" class='test e2'>
	<option value=31>secet31</option>
	<option value=32>secet32</option>
</select>
<select name="select4" class='test e3'>
	<option value=41>secet41</option>
	<option value=42>secet42</option>
</select>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 22.02.2017, 14:43
Интересующийся
Отправить личное сообщение для sim4ik-one Посмотреть профиль Найти все сообщения от sim4ik-one
 
Регистрация: 02.11.2015
Сообщений: 23

Сообщение от ksa Посмотреть сообщение
Понятие "правильно" весьма расплывчатое...
Как вариант

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
.test {
	display: none;
}
</style>
<script type='text/javascript'>
$(function(){
	$('#select1').change(function(){
		$('.test').hide();
		var id=this.options[this.selectedIndex].id;
		$('.'+id).show();
	});
});
</script>
</head>
<body>
<select name="select1" id="select1">
	<option value="">Диагностическая карта</option>
	<option id="e1" value="Она мне не нужна" >Она мне не нужна</option>
	<option id="e2" value="У меня есть">У меня есть</option>
	<option id="e3" value="Мне нужна дигностическая карта">Мне нужна дигностическая карта</option>
</select>
<select name="select2" class='test e1'>
	<option value=21>secet21</option>
	<option value=22>secet22</option>
</select>
<select name="select3" class='test e2'>
	<option value=31>secet31</option>
	<option value=32>secet32</option>
</select>
<select name="select4" class='test e3'>
	<option value=41>secet41</option>
	<option value=42>secet42</option>
</select>
</body>
</html>
Спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить значение jquey range в зависимости от значения select? drkrol jQuery 1 07.09.2015 01:24
Проверка нескольких select на одинаковые значения emulexx Общие вопросы Javascript 6 07.04.2015 15:19
изменение значения input при смене значения select galart jQuery 4 30.01.2015 19:39
Скрыть/показать элементы в зависимости от значения select AnyKeyLeft Элементы интерфейса 12 16.07.2014 16:26
Скрыть/показать элементы в зависимости от значения select ов (нескольких) Georka Элементы интерфейса 8 06.09.2013 00:20