如何点击不确定复选框以"检查"状态

BuZ*_*uZz 7 jquery

我试图遵循这个线程,建议一个检查不确定状态的解决方案.

我正在使用ASP.NET,似乎单击一个不确定状态的复选框将取消选中它,而不会触发任何事件(底层复选框实际上是'未选中').当我点击一个处于不确定状态的复选框时,我正在考虑让Javascript检查它(更喜欢这种逻辑,这应该解雇我的ASP.NET事件).

$(document).ready(function () {
    $(".UndefinedCheckboxState :checkbox").prop("indeterminate", true);

    $(":checkbox").click(function () {
        if ($(this).prop("indeterminate")) {
            $(this).prop("indeterminate", false);
            $(this).prop("checked", true);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

更新:点击事件工作正常,但其中的条件if永远不会成立!我不断点击不确定状态的复选框...

BuZ*_*uZz 10

事实证明,如果单击的复选框具有不确定状态,则通过click事件中的第一条指令,该属性已经消失.

我已经取代了我的逻辑来测试尚未消失的东西:

<script type="text/javascript">
    $(document).ready(function() {
        $(".UndefinedCheckboxState :checkbox").prop("indeterminate", true);

        $(":checkbox").click(function () {
            if ($(this).closest("span").hasClass("UndefinedCheckboxState")) {
                $(this).prop("indeterminate", false);
                $(this).prop("checked", true);
            }
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)