来自Javascript的对象所需错误

时间:2011-07-26 17:16:40

标签: c# asp.net

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

 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>

2 个答案:

答案 0 :(得分:1)

您可能需要获取表格中名称错误的ClientID

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

你已经使用上面的单选按钮进行了这项工作。

此外,如果您从代码隐藏文件中注入脚本,那么您仍然需要使用ClientID,因为JavaScript将在客户端运行。

答案 1 :(得分:0)

该错误意味着正在发生(null or undefined expression).someproperty形式的某些事情。当然,someproperty / null上没有undefined。对于这一行:

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

问题很可能是getElementById正在返回undefined,如果当时没有名为tblnewpackinglogo 的元素会导致该问题它被调用了。

由于存在tblnewpackinglogo - 除非FishBasketGordo的答案是正确的 - 我怀疑问题可能是在加载DOM之前调用ShowImage。无论是那还是另一个与上述帖子不一致的琐碎错误。

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

快乐的编码。