Javascript.RU

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

как сделать зависимость checkbox и select
Здравствуйте!
Как сделать в java script зависимость checkbox и select?
Например:
Если поставить галку в checkbox, то появиться seleсt поле для выбора.
Есть вот так:


А после отметки вот так:


Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2011, 13:17
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Сделать селект невидимым, при клике на чекбокс показывать/прятать селект, то есть манипулировать свойством display стилей у элемента.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2011, 14:15
Интересующийся
Отправить личное сообщение для MasterHrust Посмотреть профиль Найти все сообщения от MasterHrust
 
Регистрация: 15.07.2011
Сообщений: 16

Хм. А как это сделать - хоть пример какой-нить можно? Я только изучаю js.
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2011, 14:30
Интересующийся
Отправить личное сообщение для MasterHrust Посмотреть профиль Найти все сообщения от MasterHrust
 
Регистрация: 15.07.2011
Сообщений: 16

Я написал пока такой код:
function izmen_rad(chto){
if(chto==1){
document.calcForm.master2_rad.options.length=0;
document.calcForm.master2_rad.options[0]=new Option("Выбрать количество", "0", true, false);
document.calcForm.master2_rad.options[1]=new Option("Одна", "45", false, false);
document.calcForm.master2_rad.options[2]=new Option("Две", "90", false, false);
document.calcForm.master2_rad.options[3]=new Option("Три", "135", false, false);
document.calcForm.master2_rad.options[4]=new Option("Четыре", "180", false, false);
document.calcForm.master2_rad.options[5]=new Option("Пять", "225", false, false);
document.calcForm.master2_rad.options[6]=new Option("Шесть", "270", false, false);
}
if(chto==2){
document.calcForm.master2_rad.options.length=0;
document.calcForm.master2_rad.options[0]=new Option("---", "0", false, false);
}


<input type="radio" name="rad" value="1" onclick="izmen_rad(this.value)"> Да<br />
	<input type="radio" name="rad" value="2" onclick="izmen_rad(this.value)"> Нет<br />
	<select id='master2_rad' name="master2_rad" size="1">
        <option value="0">---</option>


А хотелось красивее сделать_)
Ответить с цитированием
  #5 (permalink)  
Старый 14.09.2011, 16:33
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

<input type="checkbox" onclick="change();" value="1" />
<select style="display: none;" id="select">
  <option>Option 1</option>
  <option>Option 2</option>
  <option>Option 3</option>
</select>
  <script>
function change() {
  var s = document.getElementById('select');
  s.style.display == 'none' ? s.style.display = '' : s.style.display = 'none';
}
  </script>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #6 (permalink)  
Старый 27.09.2011, 12:47
Интересующийся
Отправить личное сообщение для MasterHrust Посмотреть профиль Найти все сообщения от MasterHrust
 
Регистрация: 15.07.2011
Сообщений: 16

спасибо
Ответить с цитированием
  #7 (permalink)  
Старый 30.09.2011, 10:29
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

walik, эх да закешировать бы s.style!
Ответить с цитированием
  #8 (permalink)  
Старый 09.01.2012, 02:37
Интересующийся
Отправить личное сообщение для vaskin Посмотреть профиль Найти все сообщения от vaskin
 
Регистрация: 02.01.2012
Сообщений: 11

А если чекбоксов много(например 10)и каждый нужно повесить на конкретный селект?То к значению change приписываем 1...и т.д и меняем id у селектов?
Видок получается не сахарный,многовато одних и тех же функций:

<input type="checkbox" onclick="change();" value="1" />
<input type="checkbox" onclick="change2();" value="1" />
<input type="checkbox" onclick="change3();" value="1" />
<input type="checkbox" onclick="change4();" value="1" />

<select style="display: none;" id="select">
<select style="display: none;" id="select2">
<select style="display: none;" id="select3">
<select style="display: none;" id="select4">


function change() {
		
	  var s = document.getElementById('select');
	  
	 s.style.display == 'none' ? s.style.display = '' : s.style.display = 'none';
	 
	};
	
		function change2() {
		
	  var s = document.getElementById('select2');
	  
	 s.style.display == 'none' ? s.style.display = '' : s.style.display = 'none';
	 
	};
		function change3() {
		
	  var s = document.getElementById('select3');
	  
	 s.style.display == 'none' ? s.style.display = '' : s.style.display = 'none';
	 
	};
			function change4() {
		
	  var s = document.getElementById('select4');
	  
	 s.style.display == 'none' ? s.style.display = '' : s.style.display = 'none';
	 
	};


Есть какие нибудь варианты попроще сделать?

Последний раз редактировалось vaskin, 09.01.2012 в 02:40.
Ответить с цитированием
  #9 (permalink)  
Старый 09.01.2012, 09:47
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

тут можно приписать атрибут, по которому скрипт будет определять номер селекта.

например, так :

<input type="checkbox" onclick="*!*change(this);*/!*" value="1" *!*for=""*/!*/>
<input type="checkbox" onclick="*!*change(this);*/!*" value="1" *!*for="2"*/!*/>
<input type="checkbox" onclick=*!*"change(this);*/!*" value="1" *!*for="3"*/!*/>
<input type="checkbox" onclick="*!*change(this);*/!*" value="1" *!*for="4"*/!*/>

<select style="display: none;" id="select">
<select style="display: none;" id="select2">
<select style="display: none;" id="select3">
<select style="display: none;" id="select4">


function change(s) {
	s = s.getAttribute("for") || "";
	
	 s = document.getElementById('select'+s);
	  
	 s.style.display == 'none' ? s.style.display = '' : s.style.display = 'none';
	 
	};
Ответить с цитированием
  #10 (permalink)  
Старый 09.01.2012, 10:15
Интересующийся
Отправить личное сообщение для vaskin Посмотреть профиль Найти все сообщения от vaskin
 
Регистрация: 02.01.2012
Сообщений: 11

Супер!Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать кроссбраузерный checkbox irkprin jQuery 7 29.06.2011 11:32
Как лучше сделать виджет? comentator Элементы интерфейса 0 25.03.2011 08:44
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Сделать видимым select... Anneta Элементы интерфейса 7 12.01.2011 21:21
Как сделать? При выходе мышкой за пределы окна браузера, начинает грузится другая стр alb Events/DOM/Window 13 01.09.2010 12:19