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>

关于我可以做些什么来让它始终如一地工作的任何想法?

4

3 回答 3

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>

您的授权按钮也是如此。尝试单击它的最左侧,它将不起作用。

让我知道这是否适合你。

于 2013-04-16T18:20:55.897 回答
3

此问题与 ASP.NET 无关。我检查了你的网站,你有一个 DIV(id:boots),它位于复选框的大部分顶部(它在左侧显示靴子图像作为背景图像)。

如果您将该 div 的宽度设置为 180 像素而不是 200 像素,它应该可以解决您的问题,

于 2013-04-16T18:21:31.043 回答
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"/>
于 2013-04-16T18:24:17.060 回答