如果列表框中所选项目发生更改,则显示文本区域

Show textarea if selected item in listbox changes

本文关键字:显示 区域 文本 列表 项目 选项 如果      更新时间:2023-12-10

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

列表框代码:

<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>

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

textarea.style.display = "block";

希望这能有所帮助。


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";
  }
}
<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>