首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证是否选中了连续工作日复选框

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

Stack Overflow用户
提问于 2013-05-14 12:42:19
回答 2查看 1.4K关注 0票数 0

我有像下面这样的复选框,它显示了一周中的所有日子。

复选框的值分别为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中处理这个验证?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-14 12:57:01

如果您可以将选定的值放入数组中,那么

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2013-05-14 12:47:12

代码语言:javascript
复制
 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
        }
    }
}
 }

将此内容添加到正文部分

代码语言:javascript
复制
  checkboxlimit(document.forms.world.countries, 2) // here 2 states to select only two check box
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16535257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档