.prop, .attr не работает при попытке отключить asp:CheckBox

У меня есть куча флажков asp:. Большинство из них имеют класс "с ограничениями", и все они имеют clientIdMode='static'. У меня есть отдельный флажок с id='other'. Когда эта коробка нажата, я хочу, чтобы блоки с class='limited' были отключены. Проблема в том, что я не могу заставить его работать в Firefox или Chrome. Я нашел кучу связанных вопросов в сети, но никаких реальных ответов.

$('#other').click(function() {
    if ($(this).is(":checked")) {
        $(".restricted").prop("disabled", "disabled");
    }
    else {
        $(".restricted").prop("disabled", false);
    }
});

Я пытался использовать комбинации.prop, .attr, ("отключен", true) и ("отключен", "отключен"), но не могу заставить его работать вне IE.

РЕДАКТИРОВАТЬ: Вот также немного HTML:

<fieldset>
    <legend>Accessories</legend>
    <ol>
        <li>
            <asp:CheckBox ID="cb1" runat="server" ClientIDMode="Static" CssClass="restricted" />
            <label for="cb1">VAL 1</label>
        </li>
        <li>
            <asp:CheckBox ID="cbP2" runat="server" ClientIDMode="Static" CssClass="restricted" />
            <label for="cb2">VAL 2</label>
        </li>
        <li>
            <asp:CheckBox ID="cb3" runat="server" ClientIDMode="Static" CssClass="restricted" />
            <label for="cbPickupInside">VAL 3</label>
        </li>
        <li>
            <asp:CheckBox ID="cb4" runat="server" ClientIDMode="Static" CssClass="restricted" />
            <label for="cb4">Value 4</label>
        </li>
    </ol>
</fieldset>

И флажок, который при нажатии должен отключить другой:

<fieldset>
<ol>
    <li>
        <asp:CheckBox ID="cbG" runat="server" ClientIDMode="Static" />
        <label for="cbG">VAL G</label>
    </li>

2 ответа

Решение
$('#other').click(function() {
        if ($(this).is(":checked")) {
            $(".restricted input").prop("disabled", "disabled");
        }
        else {
            $(".restricted input").prop("disabled", false);
        }
    });

Я исправил это, добавив селектор ввода после селектора класса. Область вокруг ввода - это то, что на самом деле имело класс, так что я думаю, IE находит диапазон и запускает код для ввода. Chrome и Firefox должны остановиться на пролете.

Если это флажок asp, цель так:

$("#<%=other.ClientID %>").click(function() {
    //code here
});

Измените свой флажок класс с

CssClass="restricted"

к

class="restricted"
Другие вопросы по тегам