2010-02-24 5 views
3

У меня есть флажок и отключен Radiobuttonlist в той же таблице строк и разных td и просто пытается включить/отключить его, когда я устанавливаю/снимаю флажок.jQuery checkbox включить/отключить radioobuttonlist

<tr class = "main"> 
    <td colspan="2"> 
     <input id="CheckOne" type="checkOne" name="checkOne" /> 
     <label for="CheckOne">Some Text</label> 
    </td> 
    <td align="center"> 
     <table id="RadioButtonListOne" disabled="disabled" title="Choices" border="0"> 
     <tr> 
     <td> 
        <span disabled="disabled"> 
        <input id="RadioButtonListOne_0" type="radio" name="RadioButtonListOne" value="Y" disabled="disabled" /> 
        <label for="RadioButtonListOne_0">Yes</label></span> 
       </td> 
       <td> 
        <span disabled="disabled"><input id="RadioButtonListOne_1" type="radio" name="RadioButtonListOne" value="N" disabled="disabled" /> 
        <label for="RadioButtonListOne_1">No</label> 
        </span> 
       </td>  
      </tr> 
     </table> 
    </td> 
    </tr> 

Это как оригинальный стороне сервера HTML выглядит следующим образом:

<tr class = "main"> 
     <td colspan="2"> 
      <asp:CheckBox ID="CheckBoxOne" runat="server" Text="Some Text"/> 
     </td> 
     <td align="center"> 
      <asp:RadioButtonList ID="RadioButtonListOne" RepeatDirection="Horizontal"> 
        <asp:ListItem Value="Y">Yes asp:ListItem> 
        <asp:ListItem Value="N">No</asp:ListItem> 
      </asp:RadioButtonList> 
     </td> 
    </tr> 

По какой-то причине, когда я пытаюсь что-то очевидное, чтобы сделать это, то есть

$('#<%= CheckBoxOne.ClientID %>').click(function() 
    { 
     if ($(this).is(":checked")) 
     { 
      $('#<%= RadioButtonListOne.ClientID%> input:radio').removeAttr('disabled'); 

     } 
     else 
     { 
       $('#<%= RadioButtonListOne.ClientID%> input:radio').attr('disabled', 'disabled'); 
     } 
    }); 

тогда не работа, но логически это должно быть. Что я здесь делаю неправильно?

+0

Hi, Вы управляли серверами? У вас нет атрибутов 'runat =" server в разделе разметки, что означает, что '<% = CheckOne.ClientID%>' определенно не сработает. Можете ли вы опубликовать свой фактический код, если выше это просто псевдокод? Это может сделать гвоздь точной проблемы немного проще ... –

+0

Да, это я могу опубликовать html на стороне сервера, если это будет легче понять. – Victor

ответ

0

почему вы в том числе <% = RadioButtonListOne.ClientID% ввода: радио в вашем коде Jquery, также вам не хватает замыкающей> символ

$('#<%= RadioButtonListOne.ClientID%> input:radio').removeAttr('disabled'); 

Ваш JQuery код в одной и той же странице, таким образом она обрабатывается сервером перед загрузкой клиентом? Такие вещи, как <% = RadioButtonListOne.ClientID%> не будет работать за пределами либо PHP, ASP, или html.erb и подобные файлы

вы можете попробовать изменить ваш, если чек на эту

if ($(this).attr('checked') == 'checked') 

вместо из .а (':') проверяемых

+0

Это была просто опечатка, спасибо за указание, что вне этого – Victor

0

ID вашего CheckBox является "CheckOne":

<input id="CheckOne" type="checkOne" name="checkOne" /> 

Но ваш код выглядит как это ссылки на (скорее всего) числовое значение:

$('#<%= CheckOne.ClientID %>').click(function() 

ID вашего CheckBox должен соответствовать идентификатору клиента:

<input id="<%= CheckOne.ClientID %>" type="checkOne" name="checkOne" /> 

или

<input id="CheckOne_<%= CheckOne.ClientID %>" type="checkOne" name="checkOne" /> 

с JQuery доводят до

$('#CheckOne_<%= CheckOne.ClientID %>').click(function() 

идентификаторы Кнопка спписке аналогичная проблема.

+0

Да, это контент чтобы избежать длинных искаженных имен, я упростил их немного, также см. оригинальный html выше – Victor