我有下面的复选框,显示一周的所有日子。
复选框的值分别为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中处理这个验证?
答案 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