0

我想创建一个复选框,当复选框被选中时,按钮 btnAccept 将更改其 css 类并变为 d

我的代码在 Firefox 中运行良好,但在 Google Chrome 中无法运行。我尝试谷歌一整天仍然找不到解决方案,有人知道我的错误是什么吗?我的代码如下: 这是 Jquery 代码:

function checkboxclick() {
    $("input[id*='TermAcceptCheckBox']").each(function () {
        if (this.checked) {
            $("#<%=btnAccept.ClientID%>").addClass("blue-button19");
            $("#<%=btnAccept.ClientID%>").attr("disabled", false);
        }
        else {
            $("#<%=btnAccept.ClientID%>").removeClass("blue-button19");
            $("#<%=btnAccept.ClientID%>").attr("disabled", true);
        }
    });
}

这是html代码: <asp:CheckBox ID="TermAcceptCheckBox" runat="server" visible="True" OnChange="javascript:checkboxclick();"/>

4

4 回答 4

0

尝试这个 :-

if (this.checked) {
            $("#<%=btnAccept.ClientID%>").addClass("blue-button19");
            $("#<%=btnAccept.ClientID%>").removeAttr("disabled");
        }
        else {
            $("#<%=btnAccept.ClientID%>").removeClass("blue-button19");
            $("#<%=btnAccept.ClientID%>").attr("disabled", "disabled");
        }
于 2013-04-26T07:11:50.617 回答
0

重要提示:使用 CLICK 而不是 CHANGE,因为更改需要模糊。

我假设您只有一个复选框,因此不需要每个复选框。
我也使用 prop 而不是 attr 并链接调用,所以更简单的 jQuery

演示

<asp:CheckBox id="TermAcceptCheckBox" runat="server" visible="True" />

jQuery:

$(function() {
  $("#<%=TermAcceptCheckBox.ClientID%>").on("click", function() {
    var button = $("#<%=btnAccept.ClientID%>");
    var chk = $(this).is(":checked");
    button.prop("disabled", !chk).toggleClass("blue-button19",chk);
  });
})

请注意,最好将测试放在一个函数中并调用它 onload 以防用户重新加载页面

演示

function acceptCheck(checkbox,button) {
    var chk = checkbox.is(":checked");
    button.prop("disabled", !chk).toggleClass("blue-button19",chk);    
}
$(function() {
  $("#TermAcceptCheckBox").on("click", function() {
    acceptCheck($(this), $("#btnAccept"));
  });
  acceptCheck($("#TermAcceptCheckBox"), $("#btnAccept"));
})
于 2013-04-26T07:24:36.890 回答
0

我会用 jQuery 那样做:

$("input[id*='TermAcceptCheckBox']").each(function () {
    $btnToDisable = $("#<%=btnAccept.ClientID%>");

    if ($(this).is(':checked'))
        $btnToDisable.removeAttr("disabled");
    else
        $btnToDisable.attr("disabled", "disabled");

    $btnToDisable.toggleClass("blue-button19");

});

我做了一个更简单的例子:

html

<input type="checkbox" id="myCheckbox" />

<button id="btn" disabled="disabled">My Button</button>

jQuery

$('#myCheckbox').on('click', function() {
    $btnToDisable = $("#btn");

    if ($(this).is(':checked'))
        $btnToDisable.removeAttr("disabled");
    else
        $btnToDisable.attr("disabled", "disabled");

    $btnToDisable.toggleClass("blue-button19");

});

看到它在这里工作

所以问题可能来自:

<asp:CheckBox ID="TermAcceptCheckBox" runat="server" visible="True" OnChange="javascript:checkboxclick();"/>

更改:OnChange_OnClick

<asp:CheckBox ID="TermAcceptCheckBox" runat="server" visible="True" OnClick="javascript:checkboxclick();"/>
于 2013-04-26T07:14:35.987 回答
0

尝试以下代码来禁用和启用按钮:

$("button[name='set-up-account']").removeAttr("disabled");

("button[name='set-up-account']").attr("disabled", "disabled");

根据您的代码,它应该是:

function checkboxclick() {
$("input[id*='TermAcceptCheckBox']").each(function () {
    if (this.checked) {
        $("#<%=btnAccept.ClientID%>").addClass("blue-button19");
        $("#<%=btnAccept.ClientID%>").removeAttr("disabled");
    }
    else {
        $("#<%=btnAccept.ClientID%>").removeClass("blue-button19");
        $("#<%=btnAccept.ClientID%>").attr("disabled", "disabled");
    }
});

}

试试这个希望它能解决你的问题

于 2013-04-26T07:14:44.583 回答