日期:2014-05-17  浏览次数:20639 次

将JSP一组件隐藏后再显示,在页面显示就缩在一个单元格内了,为什么会出现这种问题,如何解决
JSP代码:
<tr class="tr_left" id="versionTypeTr">
  <td width="15%"><bean:message key='public.jsp.page.versionTypes'/></td>
  <td width="85%" colspan="2"><select id="version_types" name="version_types" <c:if test="${sop.sopType=='1'}">disabled</c:if>>
  <option value=""><bean:message key='public.jsp.prompt.pleaseSelect'/></option>
  <c:forEach items="${versionTypeList}" var="vtList">
  <option value="${vtList.typeDetailCode}" <c:if test="${vtList.typeDetailCode==sop.versionType}"><c:out value="selected"></c:out></c:if>>${vtList.typeDetailName}</option>
  </c:forEach>
  </select><font color=red>*</font></td>
</tr>
<tr class="tr_left" id="beginVersionTr">
  <td width="15%"><bean:message key='public.jsp.page.beginVersion'/></td>
  <td width="85%" colspan="2"><input id="begin_version" name="begin_version" type="text" value="${sop.beginVersion}" onchange="checkVersion(this.value,'begin')" size ="10"<c:if test="${sop.sopType=='1'}">disabled</c:if>/>
  <font color=red>*<bean:message key='M03.sop.jsp.page.beginVersionFormat'/></font>
  </td>
</tr>
打开这个页面的时候这两个组件是显示的,而且占了三个单元格,当我操作另一个组件时随着值的变化这两个组件就隐藏了,然后再改变那个组件的值,这两个组件再显示,这时候出问题了,这两个组件在页面里只占一个单元格,有人遇到过吗?如何解决!!求指点!!
JS代码:
if(sopTypes==1){
  document.getElementById("versionTypeTr").style.display="none";
  document.getElementById("version_types").value=""
  document.getElementById("beginVersionTr").style.display="none";
  document.getElementById("begin_version").value="";
  }else{
  document.getElementById("versionTypeTr").style.display="block";
  document.getElementById("beginVersionTr").style.display="block";
  }
tr_left css代码:
.tr_left
{
  text-align:left;
  background:#FAFAF1;
}

------解决方案--------------------
不能用block,
用 table-row 试试看吧

document.all.dh.style.display='table-row'; //这样显示没问题