我创建了一个带有4个复选框的用户控件(服务器控件)。我想只允许检查四个中的一个复选框。
用户控件动态加载到页面上。我的页面可能有多个相同的UserConrol。
如何使用jQuery或Javascript进行操作?
答案 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);
});