0

我有一堆 asp:checkboxs。他们中的大多数都有一个“restricted”类,并且都有clientIdMode='static'。我有一个 id='other' 的单独复选框。单击此框时,我希望禁用带有 class='restricted' 的框。问题是我无法让它在 Firefox 或 Chrome 中运行。我在网上找到了一堆相关的问题,但没有真正的答案。

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

我尝试过使用 .prop、.attr、("disabled", true) 和 ("disabled", "disabled") 的组合,但我无法让它在 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>

4

2 回答 2

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

我通过在类选择器之后添加输入选择器来修复它。输入周围的跨度实际上是类,所以我猜 IE 找到了跨度并针对输入运行代码。Chrome 和 Firefox 必须停止。

于 2013-03-14T15:12:02.083 回答
-1

如果这是一个 asp 复选框,目标如下:

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

更改您的复选框类

CssClass="restricted"

class="restricted"
于 2013-03-13T20:47:10.630 回答