2009-04-24 2 views
0

У меня есть флажок и RadioButtonList определяется следующим образом:Как отключить asp.net RadioButtonList с помощью JQuery

<asp:CheckBox id="chkChange" runat="server" text="Enable" /> 
<br /> 
<asp:RadioButtonList id="rblConsole" runat="server" cssclass="console"> 
    <asp:ListItem text="XBox 360" value="xbox" /> 
    <asp:ListItem text="Playstation 3" value="playstation" /> 
</asp:RadioButtonList> 

Эти элементы управления на странице контента с главной страницы, так что фактический HTML визуализации является:

<table id="ctl00_ContentPlaceHolder1_rblConsole" class="console" border="0"> 
    <tr> 
     <td><input id="ctl00_ContentPlaceHolder1_rblConsole_0" type="radio" name="ctl00$ContentPlaceHolder1$rblConsole" value="xbox" /><label for="ctl00_ContentPlaceHolder1_rblConsole_0">XBox 360</label> 
     </td> 
    </tr> 
    <tr> 
     <td><input id="ctl00_ContentPlaceHolder1_rblConsole_1" type="radio" name="ctl00$ContentPlaceHolder1$rblConsole" value="playstation" /><label for="ctl00_ContentPlaceHolder1_rblConsole_1">Playstation 3</label> 
     </td> 
    </tr> 
</table> 

В диалоговом окне javascript onclick на флажке я хочу отключить радиокнопки в списке радиооблоков rblConsole.

Я пытаюсь получить на кнопки радио через селектор EndsWith JQuery:

function ToggleEnabled() { 
     var isChecked = $("*[id$='chkChange']").is(":checked"); 
     if (isChecked) { 
      $("*[name$='rblConsole'").removeAttr("disabled"); 
     } else { 
      $("*[name$='rblConsole'").attr("disabled", "disabled"); 
     } 
    } 

Итак, как отключить эти с помощью JQuery?

ответ

1

Я пропускал закрывая квадратную скобку в селекторе. Это должно быть:

$("*[name$='rblConsole']").attr("disabled", "disabled"); 

Doh! Виноват.

1

первым, удалите apostrophy в селекторе атрибута

function ToggleEnabled() { 
     var isChecked = $("*[id$='chkChange']").is(":checked"); 
     if (isChecked) { 
      $("*[name$=rblConsole").removeAttr("disabled"); 
     } else { 
      $("*[name$=rblConsole").attr("disabled", "disabled"); 
     } 
    } 

второе, то лучше ту использовать ClientID свойство управления, чтобы получить элементы IdS:

function ToggleEnabled() { 
     var isChecked = $("#<%=chkChange.ClientID %>").is(":checked"); 
     if (isChecked) { 
      $("#<%=rblConsole.ClientID %>").removeAttr("disabled"); 
     } else { 
      $("#<%=rblConsole.ClientID %>").attr("disabled", "disabled"); 
     } 
    } 
+0

Второй способ делать это не сработало. Существует таблица, созданная с этим идентификатором, но сами переключатели имеют добавленное число (например, _0, _1). Правильный путь должен быть $ ("input [id^= '<% = rblConsole.ClientID%>']"). RemoveAttr ("disabled"); где id начинается с (^) идентификатора клиента. – y0mbo

-1

Пожалуйста, проверьте это:

$("input[type=radio][value=EIN]").prop("disabled", true); 
Смежные вопросы