2011-07-26 65 views
1

在我的aspx页面中,我有两个单选按钮和一个表格..如果其中一个单选按钮被选中,它应该使表格可见,如果另一个被选中不可见..但是这一行是给我一个“需要JS对象”。我从后面的代码解雇.cs ..它很好,但然后我得到这个错误。对象来自Javascript的所需错误

document.getElementById('tblnewpackinglogo').style.display = ''; 
下面

JAVASCRIPT

<script language="javascript" type="text/javascript"> 
    function ShowImage() { 
     var rdoImg = document.getElementById("<%=radImage.ClientID%>"); 
     if (rdoCurrImage2.checked == true) { 
      document.getElementById('tblnewpackinglogo').style.display = 'none'; 
     } 
     else { 
      document.getElementById('tblnewpackinglogo').style.display = ''; 
     } 
    } 
</script> 

TABLES

见代码

<table id="tblImage" border="0" cellpadding="0" cellspacing="10" runat="server" 
    visible="true"> 
     <tr> 
      <td> 
       <asp:Image ID="imgLogo" runat="server" /> 
      </td> 
      <td> 
    <div class="FieldStyle"> 
      Select an Option</div> 
        &nbsp; 
     <asp:RadioButton ID="radImage" 
       Text="Keep Current Image" 
       runat="server" 
       GroupName="LogoImage" 
       OnCheckedChanged="radImage_CheckedChanged" 
       Checked="True" /> 

     <asp:RadioButton ID="radNewImage" 
       Text="Upload New Image" runat="server" 
       GroupName="LogoImage" 
       OnCheckedChanged="radNewImage_CheckedChanged" /> 
     </td> 
     </tr> 
    <tr> 
     <td> 
      &nbsp; 
      </td> 
      </tr> 
    </table> 
    <table id="tblnewpackinglogo" border="0" cellpadding="0" cellspacing="0" width="100%" 
     runat="server" style="display:none;"> 
      <tr> 
      <td style="height: 41px"> 
        <div class="Style"> 
         Select a Logo Image</div> 
       <div class="ValueStyle"> 
        <asp:FileUpload ID="UploadImage" 
          runat="server" 
          Width="300px" /> 
          </div> 
          </td> 
         </tr> 
        </table> 

回答

1

这可能是你需要获得表的名称错位ClientID

document.getElementById('<%= tblnewpackinglogo.ClientID %>').style.display = ''; 

您已经在使用上面的单选按钮进行操作了。另外,如果您从代码隐藏文件注入脚本,那么您仍需要使用ClientID,因为JavaScript将在客户端运行。

+0

让我测试,实际上这可能是这种情况,我的表有一个runat =服务器 – user710502

0

该错误表示发生了(null or undefined expression).someproperty这种形式。当然,在null/undefined上没有someproperty。对于行:

document.getElementById('tblnewpackinglogo').style.display = ''; 

这是最有可能的问题是getElementById正在恢复undefined如果有id为tblnewpackinglogo它被调用时没有元素这将引起。

由于有一个tblnewpackinglogo然后 - 除非FishBasketGordo的答案是正确的 - 我怀疑这个问题可能是ShowImage在DOM被加载之前被调用。无论是那个还是另一个微不足道的错误,都不符合上述文章。

检查实际的HTML以查看生成的内容,并使用类似FireBug的工具手动尝试getElementById。 FireBug和MS Script Debugger都提供更详细的调试支持来检查异常时的状态。

快乐编码。