2015-09-24 155 views
0

我正在嘗試以下JavaScript來啓用或禁用基於單選按鈕的文本框。但它似乎不幹活。我得到錯誤,如 的JavaScript運行時錯誤:未定義或空引用基於單選按鈕啓用或禁用文本框

(function() { 
     if (document.getElementById("<%=radioStartBusiness.ClientID%>").checked) { 
      document.getElementById("<%=TextBoxReportPostingStartDate.ClientID%>").disabled = true; 
      document.getElementById("<%=TextBoxReportBusinessStart.ClientID%>").disabled = false; 
     } 

     if (document.getElementById("<%=radioStartPosting.ClientID%>").checked) { 
      document.getElementById("<%=TextBoxReportPostingStartDate.ClientID%>").disabled = false; 
      document.getElementById("<%=TextBoxReportBusinessStart.ClientID%>").disabled = true; 
     } 
    })(); 

和aspx頁面元素的一個無法獲取屬性「檢查」

<asp:RadioButton ID="radioStartBusiness" text="Start Business Date" AutoPostBack="true" 
             runat="server" Checked="true" GroupName="StartOrPost" /> 
+0

你的代碼中哪一行出現這個錯誤?聽起來像給定ID的元素不存在於DOM中... – ManzMoody

+0

document.getElementById(「<%= radioStartBusiness.ClientID%>」)。checked。我檢查了元素。在那裏 – rampantNinja

+0

試試這個:var elem = document.getElementById(「<%= radioStartBusiness.ClientID%>」);然後用「alert(elem)」或console.log(elem)輸出elem來檢查元素是否被找到 – ManzMoody

回答

0

您遇到的錯誤意味着getElementById沒有找到匹配的元素。如果實際上有一個ID與您的ASP變量匹配的元素,請嘗試檢入加載的頁面的源代碼,而不要檢查服務器上的文件。

+0

我看到源代碼中的元素。它也在運行時轉換爲ctl00_ContentPlaceHolder1_radioStartBusiness – rampantNinja

+0

您的輸出JavaScript是否也包含「ctl00_ContentPlaceHolder1_radioStartBusiness」?因爲如果它真的有些奇怪的事情正在發生 – patrick96

相關問題