首页 文章

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

提问于
浏览
0

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

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 回答

  • 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

  • 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
    

相关问题