Asp.net 如何让用户在复选框列表中只选择一个复选框
我有一个复选框列表(下面有6项)。我有一个搜索按钮。如果用户单击“搜索”按钮,则会得到所有结果。 我正在使用.cs文件中的数据库绑定checkboxlist的项 条件1: 但现在,如果用户选中复选框[item1],则其将被选中 他尝试选择一个2复选框[item2],然后应取消选中firstselected复选框[item1]。只应选中复选框[item2] 条件2: 现在,如果用户已选中复选框1[item1],则它将被选中。现在,若用户再次点击checkboxi[item1],那个么它应该被取消选中 您可以用javascript或JQuery为我提供解决方案 任何帮助都会很好。期待解决方案Asp.net 如何让用户在复选框列表中只选择一个复选框,asp.net,jquery,Asp.net,Jquery,我有一个复选框列表(下面有6项)。我有一个搜索按钮。如果用户单击“搜索”按钮,则会得到所有结果。 我正在使用.cs文件中的数据库绑定checkboxlist的项 条件1: 但现在,如果用户选中复选框[item1],则其将被选中 他尝试选择一个2复选框[item2],然后应取消选中firstselected复选框[item1]。只应选中复选框[item2] 条件2: 现在,如果用户已选中复选框1[item1],则它将被选中。现在,若用户再次点击checkboxi[item1],那个么它应该被取消选
谢谢为什么不使用单选按钮,它们非常适合您提到的用途 编辑:
foreach (ListItem listItem in checkBoxList.Items)
{
listItem.Attributes.Add("onclick", "makeSelection(this);");
}
function makeSelection(checkBox)
{
var checkBoxList = checkBox;
while (checkBoxList.parentElement.tagName.toLowerCase() != "table")
{
checkBoxList = checkBoxList.parentElement;
}
var aField = checkBoxList.getElementsByTagName("input");
var bChecked = checkBox.checked;
for (i = 0; i < aField.length; i++)
{
aField[i].checked = (aField[i].id == checkBox.id && bChecked);
}
}
若您一定要使用复选框列表,那个么将一些逻辑ID分配给这些复选框,以便您可以在JavaScript中访问它们。
在复选框的每个onclick事件上调用JavaScript,并在JavaScript循环中遍历并查看
- 如果选中任何复选框,则选择其他复选框 比现在点击复选框, 然后将其取消选中
- 如果已选中“当前”复选框 选中,然后切换它
$(“#checkboxId”)选中复选框。is(“:checked”)
如果选中复选框,则返回true
谢谢为什么不使用单选按钮,它们非常适合您提到的用途 编辑:
foreach (ListItem listItem in checkBoxList.Items)
{
listItem.Attributes.Add("onclick", "makeSelection(this);");
}
function makeSelection(checkBox)
{
var checkBoxList = checkBox;
while (checkBoxList.parentElement.tagName.toLowerCase() != "table")
{
checkBoxList = checkBoxList.parentElement;
}
var aField = checkBoxList.getElementsByTagName("input");
var bChecked = checkBox.checked;
for (i = 0; i < aField.length; i++)
{
aField[i].checked = (aField[i].id == checkBox.id && bChecked);
}
}
若您一定要使用复选框列表,那个么将一些逻辑ID分配给这些复选框,以便您可以在JavaScript中访问它们。
在复选框的每个onclick事件上调用JavaScript,并在JavaScript循环中遍历并查看
- 如果选中任何复选框,则选择其他复选框 比现在点击复选框, 然后将其取消选中
- 如果已选中“当前”复选框 选中,然后切换它
$(“#checkboxId”)选中复选框。is(“:checked”)
如果选中复选框,则返回true
谢谢使用单选按钮。您将面临的唯一问题是何时取消选择单选按钮。您可以为单选按钮的“onClick”编写javascript。onClick功能可以检查单选按钮是否选中,如果未选中,则选择它,否则取消选择它 希望这有帮助
RDJ使用单选按钮。您将面临的唯一问题是何时取消选择单选按钮。您可以为单选按钮的“onClick”编写javascript。onClick功能可以检查单选按钮是否选中,如果未选中,则选择它,否则取消选择它 希望这有帮助
RDJ虽然我完全同意单选按钮是实现所描述用例的方式这一共识,但这里有一点jquery的剪贴,它将导致复选框的行为类似于单选按钮。您只需在复选框标记中添加一个“groupname”属性 HTML:
第1组-单选按钮行为
复选框1
复选框2
复选框3
复选框4
复选框5
第2组-单选按钮行为
复选框1
复选框2
复选框3
复选框4
复选框5
第3组正常行为
复选框1
复选框2
复选框3
复选框4
复选框5
Javascript:
<script type="text/javascript">
$(document).ready(function() {
$('input[type=checkbox]').click(function() {
var groupName = $(this).attr('groupname');
if (!groupName)
return;
var checked = $(this).is(':checked');
$("input[groupname='" + groupName + "']:checked").each(function() {
$(this).prop('checked', '');
});
if (checked)
$(this).prop('checked', 'checked');
});
});
</script>
$(文档).ready(函数(){
$('input[type=checkbox]')。单击(函数(){
var groupName=$(this.attr('groupName');
如果(!groupName)
返回;
var checked=$(this).is(':checked');
$(“输入[groupname=”“+groupname+”]:选中”)。每个(函数(){
$(this.prop('选中','');
});
如果(选中)
$(this.prop('checked','checked');
});
});
我确信有机会提高简洁性和性能,但这应该让您开始。虽然我绝对同意单选按钮是实现所描述用例的方法这一共识,但这里有一个jquery的小片段,它将导致复选框的行为类似于单选按钮。您只需在复选框标记中添加一个“groupname”属性 HTML:
第1组-单选按钮行为
复选框1
复选框2
复选框3
复选框4
复选框5
第2组-单选按钮行为
复选框1
复选框2
复选框3
复选框4
复选框5
第3组正常行为
复选框1
复选框2
复选框3
复选框4
复选框5
Javascript:
<script type="text/javascript">
$(document).ready(function() {
$('input[type=checkbox]').click(function() {
var groupName = $(this).attr('groupname');
if (!groupName)
return;
var checked = $(this).is(':checked');
$("input[groupname='" + groupName + "']:checked").each(function() {
$(this).prop('checked', '');
});
if (checked)
$(this).prop('checked', 'checked');
});
});
</script>
$(文档).ready(函数(){
$('input[type=checkbox]')。单击(函数(){
var groupName=$(this.attr('groupName');
如果(!groupName)
返回;
var checked=$(this).is(':checked');
$(“输入[groupname=”“+groupname+”]:选中”)。每个(函数(){
$(this.prop('选中','');
});
如果(选中)
$(this.prop('checked','checked');
});
});
我确信有机会提高简洁性和性能,但这应该让您开始。这是帮助我解决此问题的代码 只需添加脚本- var objChkd 函数HandleOnCheck() { var chkLst=document.getElementById('CheckBoxList1'); if(objChkd&&objChkd.checked) } 并将客户端事件注册到页面上的“CheckBoxList1”中
添加(“onclick”,“return HandleOnCheck()” 这是帮助我解决这个问题的代码
foreach (ListItem listItem in checkBoxList.Items)
{
listItem.Attributes.Add("onclick", "makeSelection(this);");
}
function makeSelection(checkBox)
{
var checkBoxList = checkBox;
while (checkBoxList.parentElement.tagName.toLowerCase() != "table")
{
checkBoxList = checkBoxList.parentElement;
}
var aField = checkBoxList.getElementsByTagName("input");
var bChecked = checkBox.checked;
for (i = 0; i < aField.length; i++)
{
aField[i].checked = (aField[i].id == checkBox.id && bChecked);
}
}