如果列表框中的选定项目发生更改,则显示textarea

时间:2016-04-03 22:55:58

标签: javascript listbox

我有一个列表框,如果我有一个选定的项目,我想显示一个文本区域,它很简单,但我的代码不起作用,任何人都可以帮助我吗?

列表框代码:

<select onchange="change(this)" name="idUser" class="form-control">
      <c:forEach items= '${listeU}' var='p' >
           <option value="${p.getIdUser()}"> ${p.getIdUser()} - ${p.getNom()} ${p.getPrenom()}</option>             
      </c:forEach>    
</select>

JS:

function change(obj) {
      var selectBox = obj;
      var selected = selectBox.options[selectBox.selectedIndex].value;
      var textarea = document.getElementById("text_area");

      if(selected === '1'){
            textarea.show();
      }
      else{
         textarea.style.display = "none";
      }
}

要显示的项目:

<textarea id="text_area"  type="text" name="text_area" style="display: none"></textarea>

1 个答案:

答案 0 :(得分:1)

show() 是一个jQuery并且您正在使用纯JS,因此您应该将其替换为:

textarea.style.display = "block";

希望这有帮助。

&#13;
&#13;
function change(obj) {
  var selectBox = obj;
  var selected = selectBox.options[selectBox.selectedIndex].value;
  var textarea = document.getElementById("text_area");

  if(selected === '1'){
    textarea.style.display = "none";
  }
  else{
    textarea.style.display = "block";
  }
}
&#13;
<select onchange="change(this)" name="idUser" class="form-control">
    <option value="1"> option 1</option>
    <option value="2"> option 2</option>
    <option value="3"> option 3</option>
</select>

<textarea id="text_area"  type="text" name="text_area" style="display: none"></textarea>
&#13;
&#13;
&#13;