Input при определенных select

B
На сайте с 14.04.2012
Offline
35
1532

Приветствую. Имеет select html, и к примеру есть третья строка где написано "другое". И нужно чтобы при выборе этого пункта появлялось поле input.

Вот пример

<script type='text/javascript'> 

<!--
function showhideBlocks(val){
if (val == 0){
document.getElementById('i1').style.display='none';
document.getElementById('i2').style.display='none';
document.getElementById('i3').style.display='none';
document.getElementById('i4').style.display='none';
document.getElementById('j1').style.display='none';
document.getElementById('j2').style.display='none';
document.getElementById('j3').style.display='none';
document.getElementById('j4').style.display='none';
}
else{
document.getElementById('i1').style.display='none';
document.getElementById('i2').style.display='none';
document.getElementById('i3').style.display='none';
document.getElementById('i4').style.display='none';
document.getElementById('i'+val).style.display='block';
document.getElementById('j1').style.display='none';
document.getElementById('j2').style.display='none';
document.getElementById('j3').style.display='none';
document.getElementById('j4').style.display='none';
document.getElementById('j'+val).style.display='block';
}
}
-->
</script>



<style type='text/css'>
#i1,#i2,#i3,#i4,#j1,#j2,#j3,#j4{display:none}
</style>

<select name="items" onchange="showhideBlocks(this.value)">
<option selected value="0">Показать </option>
<option value="1">Квартира</option>
<option value="2">Коттедж</option>
<option value="3">Частный дом </option>
<option value="4">Другое </option>
</select>

<div class="top">
<div id="i1"></div>
<div id="i2"></div>
<div id="i3"></div>
<div id="i4"><label>Укажите:</label><br>
<input type="text" name="type"><br></div>
</div>
<BR><BR>

<select name="jtems" onchange="showhideBlocks(this.value)">
<option selected value="0">Показать </option>
<option value="1">Ремонт</option>
<option value="2">Строительство</option>
<option value="3">Инженерное оборудование</option>
<option value="4">Другое </option>
</select>

<div class="bottom">
<div id="j1"></div>
<div id="j2"></div>
<div id="j3"></div>
<div id="j4"><label>Укажите:</label><br>
<input type="text" name="type"><br></div>
</div>

Все вроде бы неплохо. Но если у меня 2 селекта и в обоих выбирается другое,то 2 поля не появляются(одно из них убирается).Я думал вы поняли что я имел ввиду

siv1987
На сайте с 02.04.2009
Offline
427
#1

Унылый код.


document.getElementById('j4').style.display='none';
document.getElementById('j'+val).style.display='block';


<option value="4">Другое </option>
B
На сайте с 14.04.2012
Offline
35
#2

Найдено было на просторах рунета

C
На сайте с 04.02.2005
Offline
291
#3
Но если у меня 2 селекта и в обоих выбирается другое,то 2 поля не появляются... Я думал вы поняли что я имел ввиду

Моя думал... Не понял.

Унылый код.

document.getElementById('j4').style.display='none';  

document.getElementById('j'+val).style.display='block';

Имеет право на жизнь... Сначала все скрыть, а нужный открыть.

B
На сайте с 14.04.2012
Offline
35
#4
<style type="text/css"><!--
#pets1_show {visibility:hidden;}
#pets2_show {display:none;}
--></style>

<script type="text/javascript"><!--
//
function mChange1(obj){
var el, s, n, v;
el=obj.options;
n=el.selectedIndex;
v=el[n].value;
s=obj.id+'_show';
if(v=="????"){
if(document.getElementById(s)){
document.getElementById(s).style.visibility="visible";}};
};



function mChange2(obj){
var el, s, n, v;
el=obj.options;
n=el.selectedIndex;//индекс выбранного оптиона
v=el[n].value;
s=obj.id+'_show';//получить ИД поля
if(v=="????"){//только если выбран нужный оптион
if(document.getElementById(s)){//существует ли такой элемент?
document.getElementById(s).style.display="block";}};//показать
};//
--></script>


<div>
<select name="pets1" id="pets1" style="width: 278px;" onchange="mChange1(this);">
<option value="">Выберите животное...</option>
<option value="собаки">Собаки</option>
<option value="кошки">Кошки</option>
<option value="????">????</option>
</select>
<br>
<input type="text" value="" name="pets1_show" id="pets1_show">
</div>
<div>
<select name="pets2" id="pets2" style="width: 278px;" onchange="mChange2(this);">
<option value="">Выберите животное...</option>
<option value="собаки">Собаки</option>
<option value="кошки">Кошки</option>
<option value="????">????</option>
</select>
<br>
<input type="text" value="" name="pets2_show" id="pets2_show">
</div>

вот другой код.Работает как надо, а как сделать чтобы при выборе например других значений в выпадающем меню, появившеесе поле Input убиралось?

Там сейчас так. Жмем на ???? появляется инпут,но если я вдруг передумал и выбирую напрмиер"собаки" то поле input все равно остается

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий