验证是否选中连续工作日复选框

时间:2013-05-14 04:42:19

标签: javascript jquery validation

我有下面的复选框,显示一周的所有日子。

enter image description here

复选框的值分别为1,2,3,4,5,6,7。

我需要在javascript中使用验证逻辑,验证用户是否单击连续几天的复选框。连续的日子可以从任何一天开始。像,

周三,周四,周五,周六,周日(4,5,6,7,1)

周一,周二,周三,周四,周五,周六(2,3,4,5,6,7)

周六,周日,周一,周二,周三,周四(7,1,2,3,4,5)

周二,周三,周四,周五,周六,周日(3,4,5,6,7,1) 等

应选择最少5天。不应允许用户选择以下示例:

周六,周日,周一,周三,周四(7,1,2,4,5)

周一,周三,周四,周五,周六(2,4,5,6,7)

周二,周四,周五,周六,周日(3,5,6,7,1)

有没有办法在javascript / jquery中处理这个验证?

2 个答案:

答案 0 :(得分:1)

如果您可以将所选值添加到数组中,那么

function test(values){

    if(values.length !=5 ){
        return false;
    }

    var expected = values[0], valid = true;
    $.each(values, function(i, v){
        if( expected != v){
            valid = false;
            return false;
        }
        expected  = v == 7 ? 1 : v + 1;
    })

    if(!valid){
        return false;
    }

    return true;
}

演示:Fiddle

答案 1 :(得分:0)

 function checkboxlimit(checkgroup, limit){
var checkgroup=checkgroup
var limit=limit
for (var i=0; i<checkgroup.length; i++){
    checkgroup[i].onclick=function(){
    var checkedcount=0
    for (var i=0; i<checkgroup.length; i++)
        checkedcount+=(checkgroup[i].checked)? 1 : 0
    if (checkedcount>limit){
        alert("You can only select a maximum of "+limit+" checkboxes")
        this.checked=false
        }
    }
}
 }

在身体部分添加此内容

  checkboxlimit(document.forms.world.countries, 2) // here 2 states to select only two check box