2011-08-08 70 views
0

嗨朋友我有一個按鈕控件,必須啓用基於我的asp.net複選框檢查,但是當運行代碼時我面臨的問題我的按鈕仍然被禁用,即使我執行復選框檢查.is他們的任何屬性,我已設置在代碼後面,以檢查事件。基於asp.net複選框啓用和禁用按鈕控制的問題檢查

我用我的應用程序 下面的代碼這是我的JavaScript文件

<script type="text/javascript"> 
        function theChecker() { 
         var checkboxId = '<%= SpEligible.ClientID %>'; 
         alert(checkboxId); 
         if (checkboxId.checked == true) 
          { 
          document.getElementById("SplistButton").disabled = false; 
          } 
          else 
           { 
          document.getElementById("SplistButton").disabled = true; 
           } 
          } 
</script> 

這是我的複選框代碼和按鈕

<asp:CheckBox ID="SpEligible" runat="server" Text="SpEligible" class="cBox" /> 
    <asp:Button ID="SplistButton" runat="server" OnClientClick=" return ShowInsertForm()" Enabled="false"/> 

這是我的aspx.cs文件我打電話給的那個javascript

SpEligible.Attributes.Add("onclick", "theChecker()"); 

回答

1

我可以看到兩個大代碼中的錯誤:

在你<script>標籤,你沒有意識到,在頁面的複選框不會有相同的ID一次,但你沒有做了檢查。另外,正如Ken Pespisa所說,你所拿的ID只是一個字符串,因此它不知道任何checked屬性。下面是代碼,我會寫:

<script type="text/javascript"> 
    function theChecker() { 
     var checkboxId = '<%= SpEligible.ClientID %>'; 
     alert(checkboxId); 
     if (document.getElementById(checkboxId).checked == true) 
     { 
      document.getElementById("<%= SplistButton.ClientID %>").disabled = false; 
     } 
     else 
     { 
      document.getElementById("<%= SplistButton.ClientID %>").disabled = true; 
     } 
    } 
</script> 

2-在你.cs頁面中,你似乎沒有使用任何名稱空間。你可能已經隱藏了一些代碼,所以我只是說一定要有namspaces,並且一定要使用這一行裏面的一個函數,也許是頁面加載事件函數。

+0

非常感謝,我的代碼現在工作正常 – mahesh

1

你需要改變t他的JavaScript代碼爲:

<script type="text/javascript"> 
        function theChecker() { 
         var checkboxId = document.getElementById('<%= SpEligible.ClientID %>'); 
         alert(checkboxId); 
         if (checkboxId.checked == true) 
          { 
          document.getElementById("SplistButton").disabled = false; 
          } 
          else 
           { 
          document.getElementById("SplistButton").disabled = true; 
           } 
          } 
</script> 

您正在檢查字符串常量的checked屬性。您需要使用已檢查屬性的document.getElementById來獲取控件本身。我還重命名 「checkboxId」 到 「複選框」

-1

變化 的document.getElementById( 「SplistButton」)

的document.getElementById(checkboxId)

+0

這將禁用/啓用複選框。目標是啓用按鈕。 –

相關問題