HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

JavaScript Выпадающий список+текстовое поле
  #1  
Старый 30.03.2009, 15:26
alpotemkin
Познающий
Регистрация: 07.05.2008
Сообщений: 49
С нами: 9479293

Репутация: 5
Question JavaScript Выпадающий список+текстовое поле

Доброго времени суток!

Только начал работать с JavaScript'ом и у меня возникли некоторые вопросы.
А вопрос такой: У меня есть список вида

Код:
<select id="select">
      <option>Первый вариант
      <option>Второй вариант
      </select>
<input type="text">

Хотелось бы сделать, чтобы при выборе элемента "Второй вариант" появлялось текстовое поле, а при выборе элемента "Первый вариант" это поле не появлялось.

P.S. Где-то вычитал такой вариант:

назначить обработчик события change select'а:document.getElementById

Код:
('select').onchange = function() {
    ...
}

а в нем, в зависимости от выбранного пункта (this.selectedIndex или this.value), изменить свойство display textbox'а (textbox.style.display = 'none' или textbox.style.display = 'inline')

Только я не совсем понял, как это сделать... Не трудно ли было бы выложить скрипт в полном виде, чтобы я смог разобраться, что и к чему.
Заранее спасибо.
 
Ответить с цитированием

  #2  
Старый 30.03.2009, 15:59
VAran
Познающий
Регистрация: 29.05.2008
Сообщений: 53
С нами: 9448648

Репутация: 67
По умолчанию

<html>
<head></head>
<body>
<script>
function f1()
{
var s = document.getElementById("select");
var t = document.getElementById("a1");
if(s.selectedIndex)
t.style.display = 'inline';
else
t.style.display = 'none';
}
</script>
<select id="select" onchange = f1()>
<option>Первый вариант</option>
<option>Второй вариант</option>
</select>
<input type="text" style="display:none" id="a1">
</body>
</html>

Последний раз редактировалось VAran; 30.03.2009 в 16:05..
 
Ответить с цитированием

  #3  
Старый 30.03.2009, 17:13
alpotemkin
Познающий
Регистрация: 07.05.2008
Сообщений: 49
С нами: 9479293

Репутация: 5
По умолчанию

Спасибо большое!
Хотел бы уточнить момент, чтобы полностью понять принцип работы: выбор из вариантов делается:
Код:
var t = document.getElementById("a1");
А если вариантов много,например 6, то делается:
Код:
var a = document.getElementById("select");
var b = document.getElementById("a1");
var c = document.getElementById("a2");
var d = document.getElementById("a3");
var e = document.getElementById("select");
var g = document.getElementById("a4");
И выводится:
Код:
<input type="text" style="display:none" id="a1">
<input type="text" style="display:none" id="a2">
<input type="text" style="display:none" id="a3">
<input type="text" style="display:none" id="a4">
или можно через запятую?
Код:
<input type="text" style="display:none" id="a1,a2,a3,a4">
 
Ответить с цитированием

  #4  
Старый 30.03.2009, 17:24
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами: 9649706

Репутация: 3338


По умолчанию

Код:
<select id="select">
    <option value="0"></option>
    <option value="1">Первый вариант</option>
    <option value="2">Второй вариант</option>
    <option value="3">Третий вариант</option>
</select>
<input type="text" style="display:none" id="a1">
<script type="text/javascript">

var selectmenu=document.getElementById("select");
selectmenu.onchange=function() { 
 var chosenoption=this.options[this.selectedIndex];
 var t = document.getElementById("a1");
 if (chosenoption.value=="1" || chosenoption.value=="3" )  
      t.style.display = 'inline';
 else 
      t.style.display = 'none';
}

</script>
 
Ответить с цитированием

  #5  
Старый 30.03.2009, 17:42
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
С нами: 9394886

Репутация: 1467


По умолчанию

пример хайда
Код HTML:
<HTML>
<body>
<script>
function hide_show(val)
{
val =parseInt(val);
switch(val)
{

case 1:
document.getElementById('inp').style.display='none';
break; 
case 2:
document.getElementById('inp').style.display='inline';
}



}
</script>
<select id="select" onchange='hide_show(this.value)'>
<option value='1'>hide</option>
<option value='2'>show</option>
</select>
<input id="inp" type="text" style="display:none">
</body>
</HTML>
 
Ответить с цитированием

  #6  
Старый 30.03.2009, 17:58
alpotemkin
Познающий
Регистрация: 07.05.2008
Сообщений: 49
С нами: 9479293

Репутация: 5
По умолчанию

Цитата:
Сообщение от KaZ@NoVa  
пример хайда
А чем хайд отличается (лучше) вышеперечисленных скриптов?
 
Ответить с цитированием

  #7  
Старый 30.03.2009, 19:53
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
С нами: 9840758

Репутация: 808


По умолчанию

Цитата:
А если вариантов много, например 6, то делается
массив.

Код:
var a = document.getElementById("select");
var b = document.getElementById("a1");
var c = document.getElementById("a2");
var d = document.getElementById("a3");
var e = document.getElementById("select");
var g = document.getElementById("a4");
Китайский стиль
 
Ответить с цитированием

  #8  
Старый 30.03.2009, 20:24
alpotemkin
Познающий
Регистрация: 07.05.2008
Сообщений: 49
С нами: 9479293

Репутация: 5
По умолчанию

Цитата:
Сообщение от astrologer  
массив.

Код:
var a = document.getElementById("select");
var b = document.getElementById("a1");
var c = document.getElementById("a2");
var d = document.getElementById("a3");
var e = document.getElementById("select");
var g = document.getElementById("a4");
Китайский стиль
Возможно. Просто я только начал изучать JS, вот пока и путаюсь немного.
За подсказку спасибо.
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.