2011-07-26 64 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都提供更詳細的調試支持來檢查異常時的狀態。

快樂編碼。