Javascript 基于所选单选按钮限制复选框

Javascript 基于所选单选按钮限制复选框,javascript,vb.net,radio-button,Javascript,Vb.net,Radio Button,是否可以根据用户先前选择的单选按钮限制复选框的数量?我有4个单选按钮和4个复选框。 当用户选择第一个单选按钮时,允许用户选择1个复选框。 当用户选择第二个单选按钮时,允许用户选择2个复选框。 当用户选择第三个单选按钮时,允许用户选择3复选框。等等 我去过,但这不是我想要的。 这就是我尝试过的。但是第二个单选按钮不起作用。 功能chkcontrol(j){ var合计=0; 对于(var i=0;i1){ 警报(“请仅选择1”) document.form1.cb[j].checked=fa

是否可以根据用户先前选择的单选按钮限制复选框的数量?我有4个单选按钮和4个复选框。
当用户选择第一个单选按钮时,允许用户选择1个复选框。
当用户选择第二个单选按钮时,允许用户选择2个复选框。
当用户选择第三个单选按钮时,允许用户选择3复选框。等等
我去过,但这不是我想要的。

这就是我尝试过的。但是第二个单选按钮不起作用。

功能chkcontrol(j){
var合计=0;
对于(var i=0;i1){
警报(“请仅选择1”)
document.form1.cb[j].checked=false;
返回false;
}
}
如果(RadioButton2.选中),则
{
如果(总数>2){
警报(“请仅选择2”)
document.form1.cb[j].checked=false;
返回false;
}
}
if(document.form1.cb[i].选中){
总计=总计+1;
}
}
} 

您使用的是什么语言或框架?请添加标签。如果它是JavaScript,则它区分大小写:已选中


您还返回了
false
,但没有返回
true
,这是不一致的。

for循环应该与其他代码分开。循环检查复选框,总计检查了多少个复选框。然后,在此之后,分别检查单选按钮

var total = 0;
for (var i = 0; i < document.form1.cb.length; i++) {
    if (document.form1.cb[i].checked) {
        total += 1;
    }
}
// now look at the radio buttons
var总计=0;
对于(var i=0;i
您的案例。。在VB中

Function ChkSum() as Integer
   Dim nChkSum as Integer 
   if checkbox1.Checked then nchksum += 1
   if checkbox2.Checked then nchksum += 1
   if checkbox3.Checked then nchksum += 1
   if checkbox4.Checked then nchksum += 1
   Return nChkSum 
End Function

Function LimitCheck() as Integer
   if radiobutton1.checked then return 1
   if radiobutton2.checked then return 2
   if radiobutton3.checked then return 3
   if radiobutton4.checked then return 4
End Function
因此,您可以在checkbox checkedchanged事件中控制检查限制

Private Sub MyCheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged, CheckBox4.CheckedChanged

  Dim chk as CheckBox = CType(Sender,CheckBox)
  If chk.Checked then
     if chksum > limitcheck Then chk.Checked = False
  End If
End Sub

但是,我们是否应该先循环单选按钮以确定选择了哪个,然后计算已选中的复选框的数量?哦,我如何使checkedchanged事件发生?哈哈,我是VS2008的新手xfor此代码。。您必须将表单与单选按钮1,2,3,4和复选框1,2,3,4一起使用。。然后将此代码复制到您的表格中。如前所述,我已使用radiobutton。但在我的后面还有支票箱1等的错误code@user2353680字体可能是弄错了。。尝试again@user2353680:如果这个答案对你有帮助。。
Private Sub MyCheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged, CheckBox4.CheckedChanged

  Dim chk as CheckBox = CType(Sender,CheckBox)
  If chk.Checked then
     if chksum > limitcheck Then chk.Checked = False
  End If
End Sub