<script type="text/javascript" src="\..\JQueryLib\jquery-1.7.1.js"></script>
<script type="text/javascript" > $(function() {
$("#checkboxA").click(function() {
/*根据全选框的选中与否,来修改记录的选取*/
if ($(this).is(':checked')) {
$(":checkbox").each(function() {
if (!$(this).is(':checked')) {
$(this).attr('checked', true);
// $(this<'tr').cssClass('select');
}
});
}
else {
$(":checkbox").each(function() {
if ($(this).is(':checked')) {
$(this).attr('checked', false);
// $(this<'tr').cssClass('select');
}
});
}
});
//删除选中项按钮事件
$("#delete").click(function() {
$("tr").each(function() {
if ($(this).find(":checkbox").is(":checked")) {
var listid = $(this).find("[display='none']").val();
alert(listid);
}
});
});
});
</script>
...<asp:DataList ID="DataList1" runat="server" Visible="False"
Width="100%" >
<HeaderTemplate>
<table>
<tr>
<th>节目单名称</th>
<th>播放类型</th>
<th>下发状态</th>
<th>编制人员</th>
<th>指定播放组</th>
<th>播放时间</th>
<th>编辑</th>
<th>操作</th>
<th><input type="checkbox" id="checkboxA" value="全选"/></th></tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("List_Name") %></td>
<td><%#Eval("Play_Type") %></td>
<td><%#Eval("Cmd_Type") %></td>
<td><%#Eval("Editter") %></td>
<td><%#Eval("PlayGrps") %></td>
<td><%#Eval("Startting") %></td>
<td><a href="" >编辑</a></td>
<td><a href="">删除</a></td>
<td><input type="checkbox"/></td>
<td style="display:none"><%#Eval("List_ID") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td align="right">共有</td>
<td><asp:Label ID="counts" runat="server" style="color:red"></asp:Label>
条记录,<asp:Label ID="pages" runat="server" style="color:red"></asp:Label>
页
</td>
</tr>
<tr class="page">
<td align="right"><a href="">首页</a></td>
<td><a href="" >上一页</a>
<a href="" >下一页</a>
<a href="">尾页</a></td>
<td></td>
<td>跳转至:<input id="goto" style="width:20px;height:20px;border:none"/>页<a href="">GO</a></td>
</tr>
<tr></tr>
<tr></tr>
<tr><td></td><td align="right"><input type="button" id="delete" value="删除选中项" /></td></tr>
</table>
</FooterTemplate>
</asp:DataList>
/*DataList已经由后台绑定了数据源,*/
我随便选择一个checkbox,然后点击删除按钮 ,
弹出来的是unfind ,而且是弹出2次(我只选了一个checkbox)
求高手解惑。
1、获取那个隐藏td的List_ID 值,
2、为什么弹出的是两次对话、明明只选了一个checkbox
3、jquery的选择器中 “所有tr对象,除了某个tr对象” 的选择器怎么写
解决方案 »
- ObjectDataSource 取值问题
- Repeater里checkbox全选反选
- 绑定 DataBinder.Eval(Container.DataItem,"字段")与 Eval("字段") 区别?
- 再问-url重写的问题:如果请求的页面不存在应该怎么处理?
- 为什么用了RequiredFieldValidator验证控件button提交时没有反应
- 为什么程序会连续两次访问Page_Load(),并且都执行了if(!Page.IsPostBack)
- 急!!在线等!我是新手,请各位解决一个问题.EXCEL导入SQL中,如果EXCEL中输入的字段属性与SQL中字段属性不一致,就提示出错,不允许导入.这该
- 新手提问
- 在读数据数时可否直接读5-10条。
- ajax xmlhttp 跨域访问
- 求高手解决一个问题
- 急,帮我看看这个图片滚动效果
if ($(this).find(":checkbox").is(":checked")) {
var listid = $(this).find("[display='none']").val();
alert(listid);
}
});你这段代码是所有tr下的被选中的input都会alert
但是现在的问题是,我点一个选项,然后选 “删除” 按钮,它会弹两次,而且
无法获取到list_ID 的值我需要这个值
第一,关于全选框的事件处理: /*根据全选框的选中与否,来修改记录的选取*/
if (this.checked) { // 这里直接用原生的 DOM 方式好了,简单有效
$('#tbodyId :checkbox').attr('checked', true); // 最好在包含所有要全选的 checkbox 的父辈元素上加一个 ID,一可以提高性能,二免得选取不相干的 checkbox。即使你这里没有,但这是一个好习惯。表格行的处理,最好的办法就是加个 tbody。
}
第二、删除按钮事件: $("#delete").click(function() {
var deletedIds = [];
$("#tbodyId :checked").each(function() { // 这里又用了 tbody,并直接选取已选中的 checkbox,而不是再通过 tr 来选。注意这里用的是 :checked
deletedIds.push(this.value); // 为什么使用 value,请看下面的绑定式
});
alert(deletedIds.join()); // 这里会弹出所有已选中的 checkbox 相关值
});
第三:数据绑定,没必要再单独弄个隐藏域出来,多此一举,还麻烦<input type="checkbox" value="<%#Eval("List_ID") %>" />直接在回复内容中写的代码,没测试,可能会有错误,但思路大体这样,你可以看一下。
$("#checkboxA").click(function() {
/*根据全选框的选中与否,来修改记录的选取*/
if ($(this).is(':checked')) {
$(":checkbox").each(function() {
if (!$(this).is(':checked')) {
$(this).attr('checked', true);
// $(this<'tr').cssClass('select');
}
});
}
else {
$(":checkbox").each(function() {
if ($(this).is(':checked')) {
$(this).attr('checked', false);
// $(this<'tr').cssClass('select');
}
});
}
});
//删除选中项按钮事件
$("#delete").click(function() {
$("tr").each(function() {
if ($(this).find(":checkbox").attr("class") == "checkbox") {
var listid = $(this).find(":checkbox.checkbox").attr("id");
alert(listid);
}
});
});
});
</script><asp:DataList ID="DataList1" runat="server" Visible="False"
Width="100%" >
<HeaderTemplate>
<table>
<tr>
<th>节目单名称</th>
<th>播放类型</th>
<th>下发状态</th>
<th>编制人员</th>
<th>指定播放组</th>
<th>播放时间</th>
<th>编辑</th>
<th>操作</th>
<th><input type="checkbox" id="checkboxA" value="全选"/></th></tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("List_Name") %></td>
<td><%#Eval("Play_Type") %></td>
<td><%#Eval("Cmd_Type") %></td>
<td><%#Eval("Editter") %></td>
<td><%#Eval("PlayGrps") %></td>
<td><%#Eval("Startting") %></td>
<td><a href="" >编辑</a></td>
<td><a href="">删除</a></td>
<td><input id="<%#Eval("List_ID") %>" class="checkbox" type="checkbox"/></td> </tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td align="right">共有</td>
<td><asp:Label ID="counts" runat="server" style="color:red"></asp:Label>
条记录,<asp:Label ID="pages" runat="server" style="color:red"></asp:Label>
页
</td>
</tr>
<tr class="page">
<td align="right"><a href="">首页</a></td>
<td><a href="" >上一页</a>
<a href="" >下一页</a>
<a href="">尾页</a></td>
<td></td>
<td>跳转至:<input id="goto" style="width:20px;height:20px;border:none"/>页<a href="">GO</a></td>
</tr>
<tr></tr>
<tr></tr>
<tr><td></td><td align="right"><input type="button" id="delete" value="删除选中项" /></td></tr>
</table>
</FooterTemplate>
</asp:DataList>
要在所有的 tr 中排除某些 tr,可以用 $('tr:not(notExpr)') 这样的形式,或者 $('tr').not('notExpr') 之类的,notExpr 是要排除元素的选择器表达式
//删除选中项按钮事件
$("#delete").click(function() {
$("#DataList1 table tr").each(function() { /*这里,原来datalist本身就是一个table ,所以要在选取他里面的table 这样,就不会弹出两次对话了。*/
if ($(this).find(":checkbox").is(":checked")) {
var listid = $(this).find("td:eq(9)").text();//表格的内容用.text()获取
if (listid != "" && listid != null) {
}
}
});
});
if( this.checked) //我就想不到,还有这这样的,呵呵, js基础差哈。。还有,你说的,规范。。恩,我慢慢适应下,呼呼,成败在细节啊 。。!散分了 !
□父:□子1 □子2 □子3 □子4;先判断,if($(":checkbox:checked").length<1)
{
alert("至少选择一个");
return false;
}
处理:
function CheckChange(obj)
{
var _checked = $(obj).attr("checked")?true:false;
$(obj).parents('td').next().find('input').attr('checked',_checked);
}function aaa(obj)
{
var _checked = true;
$(obj).parent().parent().find('input:checked').length==$(obj).parent().parent().find('input').length?true:false;
$(obj).parents('td').prev().find('input').attr('checked',_checked);
}