2013-04-16 174 views
1

我收到了幾個人無法在我的網站上註冊的報告,因爲他們無法檢查複選框,說明他們同意使用條款。基本上,一旦複選框被選中,一個按鈕被啓用以允許一個人繼續註冊。問題檢查複選框

我已經嘗試過自己和很多時間,點擊實際的複選框不會做任何事情,但通常會點擊關聯的標籤。我已經將此作爲解決方法,但我真的很想單擊實際的複選框始終工作。

登記頁面是:http://www.lonelycache.com/Account/GeocachingAuth.aspx

頁形式具有用於複選框下述(格式化爲可讀性):

<asp:CheckBox ID="AgreeTOUCheckBox" 
    AutoPostBack="true" 
    runat="server" Text="&ensp;I have read and agree to the" 
    OnCheckedChanged="AgreeTOUCheckBox_OnCheckChanged" /> 

生成的HTML是(格式化爲可讀性):

<input id="MainContent_AgreeTOUCheckBox" type="checkbox" 
     name="ctl00$MainContent$AgreeTOUCheckBox" 
     onclick="javascript:setTimeout(&#39;__doPostBack(\&#39;ctl00$MainContent$AgreeTOUCheckBox\&#39;,\&#39;\&#39;)&#39;, 0)" 
/> 
<label for="MainContent_AgreeTOUCheckBox"> I have read and agree to the</label> 

關於我可能做些什麼來保持一致地工作的任何想法?

+2

這不是'asp.net-mvc'不亞於我所知道的,我拆錯了標籤。 – gdoron

回答

3

您的複選框工作正常,它只是隱藏在另一個面板後面。如果您在複選框下方單擊並拖動以突出顯示頁面本身,則可以看到您的左腳印面板隱藏了大部分複選框。

請嘗試點擊複選框的正確邊緣,它將起作用。

這可能是因爲您的調整風格像這樣一樣簡單:

<div style="padding-left:10px"> 
    <asp:CheckBox ID="AgreeTOUCheckBox" 
     AutoPostBack="true" 
     runat="server" Text="&ensp;I have read and agree to the" 
     OnCheckedChanged="AgreeTOUCheckBox_OnCheckChanged" /> 
</div> 

同樣是你的授權按鈕也是如此。嘗試點擊它的最左邊,它將無法正常工作。

讓我知道這是否適合你。

+0

這對我來說非常有啓發性。我沒有想到隱藏複選框的其他頁面元素。現在我需要了解爲什麼面板重疊,因爲我認爲一切正確。 – Russ

3

此問題與ASP.NET無關。我檢查了你的網站,你有一個DIV(id:boots),它位於複選框的大部分之上(它顯示左側的靴子圖像,因爲它是背景圖像)。

如果你設置的那個寬度的div是180像素,而不是200像素,它應該解決您的問題,

+0

謝謝,這很有幫助。我認爲所有的尺寸都很大,但是有些東西似乎正在影響面板的放置方式。 – Russ

1

我測試您的網站。我也無法檢查。

根據我的測試,您的複選框只是啓用按鈕。如果是這樣,你可以簡單地使用jQuery來做到這一點。

下面是示例:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#<%= AgreeTOUCheckBox.ClientID %>').click(function() { 
      if ($('#<%= AgreeTOUCheckBox.ClientID %>').attr('checked')) { 
       $('#<%= AuthorizeButton.ClientID %>').removeAttr("disabled"); 
      } else { 
       $('#<%= AuthorizeButton.ClientID %>').prop("disabled", "disabled"); 
      } 
     }); 
    }); 
</script> 

<asp:CheckBox ID="AgreeTOUCheckBox" runat="server" 
    Text="&ensp;I have read and agree to the" /> 
<asp:Button runat="server" ID="AuthorizeButton" 
    Text="Authorize" Enabled="False"/>