Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何选中4个复选框中的任意2个复选框?_C#_Javascript_Asp.net - Fatal编程技术网

C# 如何选中4个复选框中的任意2个复选框?

C# 如何选中4个复选框中的任意2个复选框?,c#,javascript,asp.net,C#,Javascript,Asp.net,下午好, 这是我在asp.net中的内容,我希望用户只能选中2个复选框,超过该复选框应弹出的提示 <body> <form id="form1" runat="server"> <div> <table width="100%"> <tr> <td> <

下午好, 这是我在asp.net中的内容,我希望用户只能选中2个复选框,超过该复选框应弹出的提示

 <body>
        <form id="form1" runat="server">
        <div>
            <table width="100%">
                <tr>
                    <td>
                    <asp:CheckBox id="q3a" runat="server" Text="Public" />
                    </td>
                    <td>
                    <asp:CheckBox id="q3b" runat="server" Text="void" />
                    </td>
                    <td>
                    <asp:CheckBox id="q3c" runat="server" Text="protected"/>
                    </td>
                    <td>
                    <asp:CheckBox id="q3d" runat="server" Text="return" />
                    </td>
                </tr>
            </table>
            <asp:Button ID="btnSubmit" Text="submit" runat="server"/>
        </div>
        </form>
    </body>


我如何为此编写javascript,我已经尝试过,但找不到任何解决方法,请帮助…

同意@Tim您可以为所有复选框编写一个点击函数,然后验证是否选择了两个以上的复选框,并在需要时显示错误消息。

您可以使用:

那你就有你所需要的了


但我建议使用内置的。为此,您可以使用
CustomValidator
,它也可以在客户端上使用相应的。

您可以为复选框添加客户端onclick事件,并使用jQuery检查复选框是否选中。您可以使用一个计数器来测量阈值,然后在超过阈值时弹出消息

$('.mycheckbox').click(function(){
 var count =   $("input:checked").length;
}
注意:请将classname属性添加到具有相同类名的所有复选框中。

您可以使用JQuery:

$("input[type='checkbox']").change(function () {

        var n = $("input:checkbox:checked").length;
        if (n > 2) {
            alert('2 are already selected!');
            $(this).attr("checked", false);
        }
    });
如果您确实想使用
JavaScript
请尝试以下功能:

function checkCondition(chkbox) {
    var buttonGroup = document.getElementsByName("group");
    var total = 0;
    for (var i = 0; i < buttonGroup.length; i++) {
        if (buttonGroup[i].checked) {
            total++;
        }
    }
    if (total > 2) {
        alert('2 are already selected!');
        chkbox.checked =false;
    }
}
功能检查条件(chkbox){
var buttonGroup=document.getElementsByName(“组”);
var合计=0;
对于(变量i=0;i2){
警报('2已选定!');
chkbox.checked=false;
}
}

还可以在复选框上设置
onclick=“checkCondition(this)”
,并将其
name
属性设置为
group
值。例如,您应该在用户尝试时立即停止用户,并选择第三个选项,以便只能提交两个选中的值,并避免服务器端验证

客户端onchange事件应该连接到与此类似的函数

function validationCheck(checkbox) {
  if(checkbox.checked) {
    var count = 0;

    count += document.getElementById('q3a').checked ? 1 : 0;
    count += document.getElementById('q3b').checked ? 1 : 0;
    count += document.getElementById('q3c').checked ? 1 : 0;
    count += document.getElementById('q3d').checked ? 1 : 0;

    if(count > 2) {
      alert('You may only select two options.');
      checkbox.checked = false;
    }
  }
}

输入应该使用
onchange=“validationCheck(this);”

呈现,为什么不使用内置的ASP.NET-Validator控件?为此,您可以使用CustomValidator,它也可以在客户端上使用适当的。
function validationCheck(checkbox) {
  if(checkbox.checked) {
    var count = 0;

    count += document.getElementById('q3a').checked ? 1 : 0;
    count += document.getElementById('q3b').checked ? 1 : 0;
    count += document.getElementById('q3c').checked ? 1 : 0;
    count += document.getElementById('q3d').checked ? 1 : 0;

    if(count > 2) {
      alert('You may only select two options.');
      checkbox.checked = false;
    }
  }
}