C# 如何选中4个复选框中的任意2个复选框?
下午好, 这是我在asp.net中的内容,我希望用户只能选中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> <
<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;
}
}
}