用于确保至少选中一个复选框的代码:无法在Chrome或Firefox中使用

时间:2012-01-06 22:44:06

标签: jquery

我有工作日的复选框列表,我想确保始终至少选择一天。我已经创建了以下代码,但它似乎无法正常工作。在IE 8中它可以工作但是间歇性地在chrome和firefox中它根本不起作用。谁能解释我做错了什么?

干杯

皮特

$(function () {

    var weekdays = $("input[name='WeekDays']");

    $(weekdays).change(function (e) {

        var count = $(weekdays).filter(":checked").length;

        if (count < 1) {

            e.preventDefault();

        }

    });

});

1 个答案:

答案 0 :(得分:2)

我认为change事件在状态发生变化后被称为,因此在此阶段阻止默认操作并不会阻止取消选择。

但是,您可以以编程方式再次选中该复选框。

if (count < 1) {
    this.checked = true;
}

DEMO

请注意weekdays已经是一个jQuery对象,所以将它再次传递给jQuery是没有意义的。