Jquery函数用于gridview上的操作和复选框
gridview中的第一列(gvAvailable)是当前复选框列“chkSelect”。 它现在的工作方式是用户可以检查gridview上的多个复选框,但我想要一个jquery函数来取消选择gridview上的所有复选框,除了单击的复选框。
我也在寻找一种方法来通过点击按钮访问jquery的已检查行的列。
谢谢你的帮助
以下是生成的html的外观
Guid Id Name Facility Room 24 000101020201 Test Test Facility 25 1001 Test 2 Test 3
如果将相同的类添加到标记中的每个复选框,则可以通过说明检索它们的数组
$('.classname')
这将返回对象数组。 然后,您可以在arrays上调用“each”并取消全部取消。
function removeChecks() { $('.classname').each(function() { $(this).removeAttr('checked'); }); }
然后在每个复选框的单击处理程序中添加以上函数调用:
$('.classname').each(function() { $(this).click(function() { removeChecks(); $(this).attr('checked', 'checked'); }); });
上面的代码应该设置为在页面加载时运行。
在这个例子中,我放了一个按钮来检查,一个按钮取消选中gridview复选框:
我假设您要确保用户单击复选框不会切换? 如果是这样,请继续下面。
首先,只需为gridview中的所有复选框指定一个类名。
每当单击一个复选框时,向其添加另一个类以表示它是物理选择的。
$('.checkbox').click(function(){ $(this).addClass('checked'); });
现在,当用户点击顶部的全选复选框(让我们称之为“selectAll”)时,遍历所有复选框并在检查“已检查”类时切换状态
$('#selectAll').click(function(){ var status = $(this).attr('checked') $('.checkbox').each(function(){ //only toggle if not set if(!$(this).hasClass('checked')){ if(status){ $(this).attr('checked', 'checked'); } else{ $(this).attr('checked', ''); } } }); });
这应该有希望让你顺利。
现在,访问已检查行的列?
You could add an onclick event to each table row. $('#tablename tr').click(function(){ //do something });
我发现这个非常有用的使用jQuery检查/取消选中ASP.NET CheckBox列表中的所有项目