我有一个列表框,如果我有一个选定的项目,我想显示一个文本区域,它很简单,但我的代码不起作用,任何人都可以帮助我吗?
列表框代码:
<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>
答案 0 :(得分:1)
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";
}
}
&#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;