试图限制可以使用javascript检查的复选框数量

试图限制可以使用javascript检查的复选框数量,javascript,checkbox,Javascript,Checkbox,首先,我要说的是,其他类似的问题都有jquery的响应,我尝试只使用javascript。我试图限制在此代码中一次可以选中的复选框的数量。在我的javascript代码中,我看到我的'checkedcount'变量只增加了1次。例如,我有5个可用复选框,如果选中所有复选框,它应该增加到5。从我看到的情况来看,它只会增加到1。我只写了代码直到递增部分,这是我一直坚持的部分。我想,一旦那部分被修复,我就可以计算出代码的其余部分 var showSpan=function(){ var option

首先,我要说的是,其他类似的问题都有jquery的响应,我尝试只使用javascript。我试图限制在此代码中一次可以选中的复选框的数量。在我的javascript代码中,我看到我的'checkedcount'变量只增加了1次。例如,我有5个可用复选框,如果选中所有复选框,它应该增加到5。从我看到的情况来看,它只会增加到1。我只写了代码直到递增部分,这是我一直坚持的部分。我想,一旦那部分被修复,我就可以计算出代码的其余部分

var showSpan=function(){
var option=此,
option_value=option.value;
spanID=document.getElementById(选项值),
spanID_值=spanID.id;
如果(选项。选中){
如果(选项_值===spanID_值)spanID.textContent=“显示文本”;
}否则{
spanID.textContent=“”;
}
};
var checkLimit=函数(){
var option=此,
选项值=选项值,
checkedcount=0,
maxChecked=2;
如果(选项。选中){
checkedcount+=1;
console.log(checkedcount);
}
};
var elements=document.getElementsByClassName('display');
var e=新事件(“变更”);
对于(var i=0,len=elements.length;i问题
每次执行
checkLimit()
时,变量
checkedcount
0
处初始化。最后一个值不会被还原,因为该变量仅存在于
checkLimit()
执行中,并且在执行后被删除

解决方案 必须在
checkLimit()
函数的全局范围内声明该变量,如下例所示

//全局作用域(可在所有函数中访问)
var checkedcount=0
var showSpan=函数(){
var option=此,
option_value=option.value;
spanID=document.getElementById(选项值),
spanID_值=spanID.id;
如果(选项。选中){
如果(选项_值===spanID_值)spanID.textContent=“显示文本”;
}否则{
spanID.textContent=“”;
}
};
var checkLimit=函数(){
var option=此,
选项值=选项值,
maxChecked=2;
如果(选项。选中){
//可访问的全局变量已更新
checkedcount+=1;
console.log(checkedcount);
}
};
var elements=document.getElementsByClassName('display');
var e=新事件(“变更”);

对于(var i=0,len=elements.length;iThanks xdrm方括号),我不知道为什么,但我完全没有考虑将变量设置为全局变量。