как активировать текстовое поле, если я выберу другую опцию в выпадающем списке - PullRequest
9 голосов
/ 09 марта 2012

предположим, у меня есть 3 варианта в выпадающем списке, скажем, красный, синий и другие.Если пользователь выбирает параметр в качестве другого, то под текстовым полем должно быть видно его собственный любимый цвет.Я могу заполнить раскрывающийся список цветами, но не знаю, как сделать текстовое поле видимым при выборе других в раскрывающемся списке.Я знаю, что с помощью javascript это возможно, но я совершенно новичок в javascript.Кто-нибудь, пожалуйста, помогите мне ??

Это вариант выбора, который я реализую в моей HTML-форме

   <select name="color"> // color
    <option>pick a color</option>  
    <option value="red">RED</option>
    <option value="blue">BLUE</option>
    <option value="others">others</option>
</select>

<input type="text" name="color" id="color" /></td> // this textbox should be hidden //until unless others is selected in the drop down box

Ответы [ 5 ]

30 голосов
/ 09 марта 2012

Ниже приведен основной код JavaScript, который вам нужно написать:

<html> 
<head>  
<script type="text/javascript">
function CheckColors(val){
 var element=document.getElementById('color');
 if(val=='pick a color'||val=='others')
   element.style.display='block';
 else  
   element.style.display='none';
}

</script> 
</head>
<body>
  <select name="color" onchange='CheckColors(this.value);'> 
    <option>pick a color</option>  
    <option value="red">RED</option>
    <option value="blue">BLUE</option>
    <option value="others">others</option>
  </select>
<input type="text" name="color" id="color" style='display:none;'/>
</body>
</html>
7 голосов
/ 09 марта 2012

Кодированный пример на http://jsbin.com/orisuv

HTML

<select name="color" onchange='checkvalue(this.value)'> 
    <option>pick a color</option>  
    <option value="red">RED</option>
    <option value="blue">BLUE</option>
    <option value="others">others</option>
</select> 
<input type="text" name="color" id="color" style='display:none'/>

Javascript

function checkvalue(val)
{
    if(val==="others")
       document.getElementById('color').style.display='block';
    else
       document.getElementById('color').style.display='none'; 
}
2 голосов
/ 09 марта 2012

Inline:

<select 
onchange="var val = this.options[this.selectedIndex].value;
this.form.color[1].style.display=(val=='others')?'block':'none'">

Раньше я делал это

В голове (укажите удостоверение личности):

window.onload=function() {
  var sel = document.getElementById('color');
  sel.onchange=function() {
    var val = this.options[this.selectedIndex].value;
    if (val == 'others') {
      var newOption = prompt('Your own color','');
      if (newOption) {
        this.options[this.options.length-1].text = newOption;
        this.options[this.options.length-1].value = newOption;
        this.options[this.options.length] = new Option('other','other');
      }
    }
  }
}
1 голос
/ 09 марта 2012

Просто

<select id = 'color2'
        name = 'color'
        onchange = "if ($('#color2').val() == 'others') {
                      $('#color').show();
                    } else {
                      $('#color').hide();
                    }">
  <option value="red">RED</option>
  <option value="blue">BLUE</option>
  <option value="others">others</option>
</select>

<input type = 'text'
       name = 'color'
       id = 'color' />

edit: требуется плагин JQuery

0 голосов
/ 18 августа 2017

В ответе Умеша Патила есть комментарий, что есть проблемаЯ пытаюсь редактировать ответ и получаю отказ.И получите предложение опубликовать новый ответ.Этот код должен решить проблему, с которой они сталкиваются (Шаши Рой, Гавен, Джон Хиггинс).

<html> 
<head>  
<script type="text/javascript">
function CheckColors(val){
 var element=document.getElementById('othercolor');
 if(val=='others')
   element.style.display='block';
 else  
   element.style.display='none';
}

</script> 
</head>
<body>
  <select name="color" onchange='CheckColors(this.value);'> 
    <option>pick a color</option>  
    <option value="red">RED</option>
    <option value="blue">BLUE</option>
    <option value="others">others</option>
  </select>
<input type="text" name="othercolor" id="othercolor" style='display:none;'/>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...