如何在UserControl中仅允许检查四个中的一个复选框?

时间:2010-11-24 04:41:05

标签: javascript asp.net jquery

我创建了一个带有4个复选框的用户控件(服务器控件)。我想只允许检查四个中的一个复选框。

用户控件动态加载到页面上。我的页面可能有多个相同的UserConrol。

如何使用jQuery或Javascript进行操作?

4 个答案:

答案 0 :(得分:4)

使用Radio Button Control。复选框用于多个选择,而单选按钮用于单个选择。然后使用单选按钮,您可以为这些控件指定GroupName,以将选择限制为单个项目。

答案 1 :(得分:0)

您可以将组中的所有复选框都指定为同一个类,并使用JQuery取消选中它们,同时选中或取消选中已单击的复选框:

$('.checkbox').click(function{
   // save the original checked state of the one we're clicking:
   var checked = $(this).attr('checked'); 
   $('.checkbox').attr('checked', false); // uncheck all of the boxes
   $(this).attr('checked', !checked); // invert the original state
});

但更好的选择可能是使用一个单选按钮控件,而不是以上所有"选项。这样你就可以进行验证(他们是否完全回答了这个问题?)

答案 2 :(得分:0)

我认为它应该是:$(this).attr('checked',checked);

答案 3 :(得分:0)

在使用cakephp时遇到类似的问题。 Cakephp在DIV中包装复选框。 我的解决方案是使用每个循环清除复选框,然后选中勾选用户的复选框。

CASE:

<div class="unique">   <input type='checkbox' name='mygroup1' value='1' class=''>one</div>    
<div class="unique">   <input type='checkbox' name='mygroup2' value='2' class=''>two</div>    
<div class="unique">   <input type='checkbox' name='mygroup3' value='3' class=''>three</div> 

$('.unique').click(function() {
    $('.unique').find('input').each(function(){
        $(this).attr('checked', false);
    });
    $(this).find('input:first').attr('checked', true);
});