开发者

Object Required Error from Javascript

In my aspx page, I have two radio buttons and a table.. if one of the radio buttons is checked it should make the table visible if the other one is checked invisible.. but this line is giving me a "JS Object Required". I am firing this from code behind .cs.. it fires fine but then i get that error.

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

See code below

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">
   开发者_如何学Go               <div class="Style">
                        Select a Logo Image</div>
                <div class="ValueStyle">
                     <asp:FileUpload ID="UploadImage" 
                          runat="server" 
                          Width="300px" />
                             </div>
                            </td>
                        </tr>
                    </table>


It's probably that you need to get the name-mangled ClientID of the table:

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

You're already doing it with the radio button above.

Also, if you're injecting the script from the code-behind file, then you'll still need to use the ClientID, as the JavaScript will run on client-side.


That error means that something of the form (null or undefined expression).someproperty is occurring. Naturally there is no someproperty on null/undefined. For the line:

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

It is most likely that the problem is getElementById is returning undefined which would be caused if there was no element with the id tblnewpackinglogo at the time it was invoked.

Since there is a tblnewpackinglogo then -- unless FishBasketGordo's answer is correct -- I suspect the issue may be that ShowImage is invoked before the DOM has been loaded. Either that or there is another trivial error that does not align with the above post.

Inspect the actual HTML to see what is generated and use a tool like FireBug to try getElementById manually. Both FireBug and MS Script Debugger also offer more detailed debugging support to inspect the state at the time of the exception.

Happy coding.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜