Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите сделать такой select (https://javascript.ru/forum/misc/37559-pomogite-sdelat-takojj-select.html)

silor 24.04.2013 17:55

Помогите сделать такой select
 
Есть два селекта:

первый:

<select name="dost">
<option value="0">Выберете способ доставки</option>
<option value="1">Почтой России (оплата при получении)</option>
<option value="2">Курьером по России (Оплата по предоплате)</option>
</select>


и второй:

<select name="pay">
<option value="0">Выберете способ оплаты</option>
<option value="1">Наличными при получении</option>
<option value="2">Предоплата на Яндекс деньги</option>
<option value="3">Предоплата на WebMoney</option>
</select>


Как сделать если в первом селекте выбран способ почтой России, то во втором селекте автоматом выбирается оплата при получении, а остальные option становятся не активными к выбору.
Ну и размеется если выбран способ Курьером по России, то во втором селекте становится неактивным наличными при получении.
Надеюсь понятно описал задачу. Заранее спасибо за ответы.

tsigel 25.04.2013 13:23

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<select class="select1" name="dost">
 <option value="0">Выберете способ доставки</option>
 <option value="1">Почтой России (оплата при получении)</option>
 <option value="2">Курьером по России (Оплата по предоплате)</option>
 </select>
<select class="select2" name="pay">
 <option value="0">Выберете способ оплаты</option>
 <option value="1">Наличными при получении</option>
 <option value="2">Предоплата на Яндекс деньги</option>
 <option value="3">Предоплата на WebMoney</option>
</select>
<script>
  $('.select1').change(function() {
    switch($(this).val()) {
      case '0':
         //Действие выполнится при выборе первого option
         break;
      case '1':
         //Действие выполнится при выборе второго option
         break;
      case '2':
         //Действие выполнится при выборе третьего option
         break;
    }
  });
</script>

ksa 25.04.2013 14:39

Цитата:

Сообщение от silor
если в первом селекте выбран способ почтой России, то во втором селекте автоматом выбирается оплата при получении

В этом случае и селекта второго не нужно совсем. Т.к. нет самого выбора...

Цитата:

Сообщение от silor
если выбран способ Курьером по России

Таки показать второй селект с двумя альтернативами...

ksa 25.04.2013 14:56

Нечто вроде такого...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
#case1,
#case2 {
	display: none;
}
</style>
<script type="text/javascript">
function test(Case) {
    switch(Case) {
		case '1':
			document.getElementById('case1').style.display='inline';
			document.getElementById('case2').style.display='';
			break;
		case '2':
			document.getElementById('case1').style.display='';
			document.getElementById('case2').style.display='inline';
			break;
		default:
			document.getElementById('case1').style.display='';
			document.getElementById('case2').style.display='';
    };
};
</script>
</head>
<body>
<label>Выберете способ доставки
	<select name="dost" onchange='test(this.value);'>
		<option value="0"></option>
		<option value="1">Почтой России (оплата при получении)</option>
		<option value="2">Курьером по России (Оплата по предоплате)</option>
	</select>
</label>
<div>
	<p id='case1'>Оплата наличными при получении</p>
	<label id='case2'>Выберете способ оплаты:
		<select name="pay">
			<option value="0"></option>
			<option value="2">Предоплата на Яндекс деньги</option>
			<option value="3">Предоплата на WebMoney</option>
		</select>
	</label>
</div>
</body>
</html>

tsigel 25.04.2013 14:58

Цитата:

Сообщение от ksa

Опечаточка.

ksa 25.04.2013 15:04

tsigel - Зоркий сокол! :D

silor 25.04.2013 15:21

Всем спасибо за ответы) воспользовался способом ksa, работает)

silor 26.04.2013 16:01

Возникла такая проблема, у меня идет проверка через js правильность заполнения полей..

function send(){
	var f=document.forms['checkout'];
	if(!f.name.value || f.name.value=='') alert('Введите Ваше ФИО!');
	else if(!f.address.value || f.address.value=='') alert('Введите Ваш адрес!');
	else if (f.dost.selectedIndex == 0) alert('Выберите способ доставки!');
	else if (f.pay.selectedIndex == 0) alert('Выберите способ оплаты!');
	else f.submit();
}



Как сделать чтобы не вылазила ошибка вы не выбрали способ оплаты?)

ksa 26.04.2013 16:17

Цитата:

Сообщение от silor
Как сделать чтобы не вылазила ошибка вы не выбрали способ оплаты?

Проверить надо ли это вообще проверять...

silor 26.04.2013 16:33

а как эт изменить нужно? Сори, но js вообще не курю((


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