是否可以根据用户之前选择的单选按钮限制复选框的数量?我有4个单选按钮& 4个复选框。
当用户选择第一个单选按钮时,允许用户选择1复选框。
当用户选择第二个单选按钮时,允许用户选择2复选框
当用户选择第三个单选按钮时,允许用户选择3复选框。等等。
我去过这里,但这不是我想要的。 Limit checkboxes with jquery based on checked radio buttons
这就是我尝试过的。但它不适用于第二个单选按钮。
function chkcontrol(j) {
var total = 0;
for (var i = 0; i < document.form1.cb.length; i++) {
if (RadioButton1.Checked) Then
{
if (total > 1) {
alert("Please Select only 1")
document.form1.cb[j].checked = false;
return false;
}
}
if (RadioButton2.Checked) Then
{
if (total > 2) {
alert("Please Select only 2")
document.form1.cb[j].checked = false;
return false;
}
}
if (document.form1.cb[i].checked) {
total = total + 1;
}
}
}
答案 0 :(得分:0)
您使用的是哪种语言或框架?请添加标签。如果是JavaScript,则区分大小写:已检查。
您还要返回false
,但不返回true
,这是不一致的。
答案 1 :(得分:0)
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
答案 2 :(得分:0)
你的情况..在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