0

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

这是我尝试过的。但它不适用于第二个单选按钮。

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;
        }
    }
} 
4

3 回答 3

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
于 2013-06-09T15:43:13.780 回答
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

因此,您可以在复选框 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
于 2013-06-09T16:32:41.203 回答
0

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

你也在返回false,但没有返回true,这是不一致的。

于 2013-06-09T15:23:14.710 回答