如果另一个没有检查jQuery,请禁用复选框

时间:2014-07-14 23:09:13

标签: javascript jquery html checkbox

我需要至少选中一个复选框。两者都可以同时检查,但我至少需要一个检查。

我尝试使用下面的代码执行此操作。我们的想法是检查是否未选中该复选框,并将禁用的属性添加到另一个复选框。

所以例如......

如果未选中字母,请检查数字并将其禁用,以便用户无法取消选中。

if (letters.checked === false) { // if letters isn't checked
    numbers.prop("disabled", true); // disable numbers
    numbers.checked = true; // keep numbers checked
} else if (numbers.checked === false) { // else if numbers isn't checked
    letters.prop("disabled", true); // disable letters
    letters.checked = true; // keep letters checked
}

Fiddle

2 个答案:

答案 0 :(得分:2)

像这样你的意思是:)工作演示:http://jsfiddle.net/Y3dC3/

  • 我添加了.on更改事件。
  • 此外,您可以使用.is检查是否已选中。

希望这符合您的需求。

<强>码

$(document).ready(function () {

    $('input[type=checkbox]').change(function () {
        var letters = $("#letters"),
            numbers = $("#numbers");

        if (!letters.is(':checked')) { // if letters isn't checked
            numbers.prop("disabled", true); // disable numbers
            numbers.checked = true; // keep numbers checked
        } else if (!numbers.is(':checked')) { // else if numbers isn't checked
            letters.prop("disabled", true); // disable letters
            letters.checked = true; // keep letters checked
        }
    });
});

答案 1 :(得分:0)

如果您希望每次检查状态发生变化时都要触发,那么您需要将该逻辑放入事件处理程序中。目前,它仅在$(document).ready上运行,并且在此之后永远不会运行。