仅按顺序输入复选框

时间:2018-02-22 18:50:19

标签: javascript

我正在寻找一个关于如何在输入复选框中设置选择规则的解决方案,该选项允许选择3个元素,但只能按正确的顺序选择。

假设我们有几个复选框,例如ch1,ch2,ch3,ch4,ch5,ch6。 用户只能标记三个,但只能一个一个。

ch1 + ch2 + ch3 - 没关系

ch3 + ch4 + ch5 - 没问题

ch2 + ch4 + ch5 - 不行

ch1 + ch2 + ch4 - 不行

我知道如何限制:

$('#Miesiac :checkbox').change(function () {
    var $checks=$(this).closest('#Miesiac').find(':checkbox:checked');
    if ($checks.length > 3) {
        this.checked=false;
    }
});

但是如何逐一给出规则。你知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

给复选框一个连续的Id或属性,就好像你正在做的那样...... ch1,ch2,ch3等...

在更改事件中,您可以使用当前正在选中/取消选中的复选框。从复选框中解析ID或属性。

var theId = $(this).attr('id');

使用简单的字符串检查从该id字符串中解析复选框的编号。然后,您可以选中上面一个增量和当前复选框下面一个增量复选框的选中状态。为了清楚起见,我使这段代码比需要的更冗长。

theId.replace('ch','');
theId++; //For one above
$('ch'+theId).checked;

$('ch'+theId).attr('checked');

现在你要去看一个上面的状态,如果它无效,你可以设置一个错误状态变量。对下面的一个做同样的事情,你可以做任何验证休息,消息,页面事件拦截或任何你需要的东西。可能有20种不同的方法,这是一个想法。