我写了一个 javascript 函数。
function wellChecked(state) {
if (state)
{
wellDropDown.style.visibility = 'visible';
}
else
{
wellDropDown.style.visibility = 'hidden';
}
}
我在 Well Modification <td>
后面有一个复选框如下所示,
<tr>
<td>On Call</td>
<td><html:checkbox property="onCall"/></td>
<td>Well Modification</td>
<td><input type="checkbox" onclick="wellChecked(this.checked)" /></td>
</tr>
单击该复选框后,我想要在 div id=wellDropDown
下给出的下拉列表被显示。默认情况下,如果未单击复选框,则不应显示下拉列表。
<tr>
<td>Active</td>
<td><html:checkbox property="active"/></td>
<div id="wellDropDown" style="visibility:hidden;">
<td>
<html:select property="wellFormatId">
<html:option value="">(Select)</html:option>
<bean:define id="wellFormatColl" name="wellFormats" scope="request"/>
<logic:iterate id="wellFormats" name="wellFormatColl" indexId="index" type="com.astrazeneca.compis.data.WellFormatVO">
<% Long wellId = wellFormats.getWellFormatId();%>
<% String wellIdNo = wellId.toString(); %>
<html:option value="<%=wellIdNo%>">
<bean:write name="wellFormats" property="wellFormatName"/>
</html:option>
</logic:iterate>
</html:select>
</td>
</div>
</tr>
当我尝试执行这段代码时,无论复选框是否选中,我都可以看到下拉列表正在显示。
在这种情况下我哪里出错了?请提供您的建议或方法来实现我的要求。
最佳答案
您的 HTML 无效。你可能没有 div
附上一个td
像这样。要么制作 td
本身可见或不可见,或将 div
在td
里面, 而不是把它放在 td
周围.
此外,除非wellDropDown
是一个全局的JS变量,代码应该是
document.getElementById("wellDropDown").style.visibility = 'visible';
关于java - 在 JSP 中使用 <div> 标签使内容隐藏或可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8711103/