Javascript对象要求错误

本文关键字:错误 对象 Javascript | 更新日期: 2023-09-27 18:03:41

在我的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>

   <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>

Javascript对象要求错误

您可能需要获取表的名称混淆的ClientID:

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

你已经使用了上面的单选按钮。

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

这个错误意味着某种形式的(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都提供了更详细的调试支持来检查异常发生时的状态。

快乐编码。