2013-04-16 2 views
1

Я получил несколько сообщений от людей, которые не могут зарегистрироваться на моем сайте из-за того, что они не могут проверить флажок, указав, что они согласны с Условиями использования. В принципе, после того, как флажок установлен, кнопка разрешена для продолжения регистрации.Устранение неполадок checkbox

Я пробовал себя и много времени, нажав на фактический флажок, не делает ничего, кроме как обычно нажимает на соответствующую метку. Я дал это как обходной путь, но мне бы очень хотелось, чтобы нажимать на фактическую работу флажка все время.

Страница регистрации: 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> 

То же самое относится и к кнопке Authorize. Попробуйте щелкнуть по левому краю, и это не сработает.

Сообщите мне, если это сделает это за вас.

+0

Это было очень поучительно для меня. Я не думал о других элементах страницы, скрывающих флажок. Теперь мне нужно понять, почему панель перекрывается, поскольку я думал, что все было правильно. – Russ

3

Эта проблема не имеет ничего общего с ASP.NET. Я проверил ваш сайт, и у вас есть DIV (id: boots), который сидит поверх большинства флажков (он отображает изображение загрузок слева, поскольку это фоновое изображение).

Если вы установите ширину этого Div быть 180px, а не 200px, это должно решить проблему,

+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"/> 
Смежные вопросы