选中table某一行,默认选中该行的radio问题

qq_41465750 2018-03-20 11:22:37
我最近想实现选中页面上的某一行,然后默认选中该行的radio按钮
具体代码如下
js函数
$(function () {
$("#tab tr").click(function () {
// $(this).find(":radio").prop("checked", true);
$(this).find("input[type='radio']").prop("checked", true);
});

表格
<ItemTemplate>
<tr style='cursor: pointer;' onclick ="selectline()">
<td>
<input name ="check" type="radio" />张三</td>
</tr>
</ItemTemplate>

在页面上我做了一个button,button有验证动作,由于验证不通过直接返回
代码如下
<li>
<asp:LinkButton CssClass="btqxh" ID="End" runat="server" OnClick="EndData">结束</asp:LinkButton>
</li>

protected void EndData(object sender, EventArgs e)
{
return;
}
在没点击一个button是 选中table的一行,可以默认选中当前行的radio,但是点击完button之后,该功能失效,请大神帮忙看看 该怎么解决
...全文
1100 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
think_m717 2018-04-20
  • 打赏
  • 举报
回复
如果你服务器按钮没有什么代码的话,可以换成普通按钮
csdnFUCKINGSUCKS 2018-04-20
  • 打赏
  • 举报
回复
<ItemTemplate> <tr style='cursor: pointer;' onclick ="selectline()"> <td> <input name ="check" type="radio" />张三</td> </tr> </ItemTemplate> 所以这个是什么东西
wooddy1982 2018-04-20
  • 打赏
  • 举报
回复
还是用AJAX吧。这样和用户的交互能好一些,你也用不着愁那个radio为什么也选不上了。
正怒月神 2018-03-20
  • 打赏
  • 举报
回复
因为webform到服务器后,就要刷新页面,所以把js刷没了。
  • 打赏
  • 举报
回复
你这个应该是页面刷新导致js失效了吧,改用on来委托注册
qq_41465750 2018-03-20
  • 打赏
  • 举报
回复
在没点击button时 选中table的一行 刚才打错字了
正怒月神 2018-03-20
  • 打赏
  • 举报
回复
引用 15 楼 qq_41465750 的回复:
非常感谢你,我按照你的写法改了,但是不好用,现在的现象是点击完button之后,根本就执行不到 $(function () {}里面的内容了,无论我放什么js函数都不行,是不是 $(function () {}在执行完服务器代码有什么限制吗?
你浏览器调试看看js是不是出问题了。 照道理来说除非你后台对前台Js有改动,不然button的刷新还是会再次执行 $(function () {}这个加载动作的。
qq_41465750 2018-03-20
  • 打赏
  • 举报
回复
引用 14 楼 hanjun0612 的回复:
[quote=引用 13 楼 qq_41465750 的回复:] 我使用的jQuery1.9 live编译不过去,使用on也还是不行啊
哦,我刚才查了 1.9去下了live,使用on代替。 但是你的on写法不对。 应该是 $('#tab').on("click","tr",function(){ alert("x"); })[/quote] 非常感谢你,我按照你的写法改了,但是不好用,现在的现象是点击完button之后,根本就执行不到 $(function () {}里面的内容了,无论我放什么js函数都不行,是不是 $(function () {}在执行完服务器代码有什么限制吗?
正怒月神 2018-03-20
  • 打赏
  • 举报
回复
引用 13 楼 qq_41465750 的回复:
我使用的jQuery1.9 live编译不过去,使用on也还是不行啊
哦,我刚才查了 1.9去下了live,使用on代替。 但是你的on写法不对。 应该是 $('#tab').on("click","tr",function(){ alert("x"); })
qq_41465750 2018-03-20
  • 打赏
  • 举报
回复
引用 12 楼 hanjun0612 的回复:
[quote=引用 9 楼 qq_41465750 的回复:] 是这样吗? $(function () { $('#tab tr').bind('click', function () { $(this).find("input[type='radio']").prop("checked", true); }); }); 修改之后 还和以前的现象一样吗
不是bind,是live[/quote] 我使用的jQuery1.9 live编译不过去,使用on也还是不行啊
正怒月神 2018-03-20
  • 打赏
  • 举报
回复
引用 9 楼 qq_41465750 的回复:
是这样吗?
$(function () {
$('#tab tr').bind('click', function () { $(this).find("input[type='radio']").prop("checked", true); });
});
修改之后 还和以前的现象一样吗

不是bind,是live
qq_41465750 2018-03-20
  • 打赏
  • 举报
回复
引用 10 楼 qq_41465750 的回复:
[quote=引用 2 楼 starfd 的回复:] 你这个应该是页面刷新导致js失效了吧,改用on来委托注册
$(function () { $('#tab tr').bind('click', function () { $(this).find("input[type='radio']").prop("checked", true); }); }); 我是用这个方法 之后 现象还是一样啊?[/quote]
引用 10 楼 qq_41465750 的回复:
[quote=引用 2 楼 starfd 的回复:] 你这个应该是页面刷新导致js失效了吧,改用on来委托注册
$(function () { $('#tab tr').bind('click', function () { $(this).find("input[type='radio']").prop("checked", true); }); }); 我是用这个方法 之后 现象还是一样啊?[/quote] 把bind换成on也不行 $(function () { $('#tab tr').on('click', function () { $(this).find("input[type='radio']").prop("checked", true); }); });
qq_41465750 2018-03-20
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
你这个应该是页面刷新导致js失效了吧,改用on来委托注册
$(function () { $('#tab tr').bind('click', function () { $(this).find("input[type='radio']").prop("checked", true); }); }); 我是用这个方法 之后 现象还是一样啊?
qq_41465750 2018-03-20
  • 打赏
  • 举报
回复
引用 8 楼 hanjun0612 的回复:
[quote=引用 7 楼 qq_41465750 的回复:] [quote=引用 6 楼 hanjun0612 的回复:] [quote=引用 5 楼 qq_41465750 的回复:] [quote=引用 3 楼 hanjun0612 的回复:] 因为webform到服务器后,就要刷新页面,所以把js刷没了。
如果我在js上使用ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "window.location.href = window.location.href", true); 这个函数 重新刷新页面 这个功能就好用,如果是刷新页面不好用,除了这个重定向,还有其他的办法吗?因为这个页面有检索,重定向 会让检索失效[/quote] 比较粗暴的办法,就是js把选中行记录到服务器的hidden控件。 那么后台刷新,也不会把hidden擦掉。然后js中判断Hidden如果有值,则选中该行的checkbox[/quote] 我可能没说明白,点击页面上的button之后,js的函数就执行不到了,就是我无论如何点击页面的上一行,都无法执行,您说的是记录,可是我点击button之后,我不是要保留选择的radio,我是希望再选择一行也能选中一个radio[/quote] 那是你js的问题。Js用 live来绑定新增行的click事件。[/quote] 是这样吗? $(function () { $('#tab tr').bind('click', function () { $(this).find("input[type='radio']").prop("checked", true); }); }); 修改之后 还和以前的现象一样吗
正怒月神 2018-03-20
  • 打赏
  • 举报
回复
引用 7 楼 qq_41465750 的回复:
[quote=引用 6 楼 hanjun0612 的回复:] [quote=引用 5 楼 qq_41465750 的回复:] [quote=引用 3 楼 hanjun0612 的回复:] 因为webform到服务器后,就要刷新页面,所以把js刷没了。
如果我在js上使用ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "window.location.href = window.location.href", true); 这个函数 重新刷新页面 这个功能就好用,如果是刷新页面不好用,除了这个重定向,还有其他的办法吗?因为这个页面有检索,重定向 会让检索失效[/quote] 比较粗暴的办法,就是js把选中行记录到服务器的hidden控件。 那么后台刷新,也不会把hidden擦掉。然后js中判断Hidden如果有值,则选中该行的checkbox[/quote] 我可能没说明白,点击页面上的button之后,js的函数就执行不到了,就是我无论如何点击页面的上一行,都无法执行,您说的是记录,可是我点击button之后,我不是要保留选择的radio,我是希望再选择一行也能选中一个radio[/quote] 那是你js的问题。Js用 live来绑定新增行的click事件。
qq_41465750 2018-03-20
  • 打赏
  • 举报
回复
引用 6 楼 hanjun0612 的回复:
[quote=引用 5 楼 qq_41465750 的回复:] [quote=引用 3 楼 hanjun0612 的回复:] 因为webform到服务器后,就要刷新页面,所以把js刷没了。
如果我在js上使用ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "window.location.href = window.location.href", true); 这个函数 重新刷新页面 这个功能就好用,如果是刷新页面不好用,除了这个重定向,还有其他的办法吗?因为这个页面有检索,重定向 会让检索失效[/quote] 比较粗暴的办法,就是js把选中行记录到服务器的hidden控件。 那么后台刷新,也不会把hidden擦掉。然后js中判断Hidden如果有值,则选中该行的checkbox[/quote] 我可能没说明白,点击页面上的button之后,js的函数就执行不到了,就是我无论如何点击页面的上一行,都无法执行,您说的是记录,可是我点击button之后,我不是要保留选择的radio,我是希望再选择一行也能选中一个radio
正怒月神 2018-03-20
  • 打赏
  • 举报
回复
引用 5 楼 qq_41465750 的回复:
[quote=引用 3 楼 hanjun0612 的回复:] 因为webform到服务器后,就要刷新页面,所以把js刷没了。
如果我在js上使用ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "window.location.href = window.location.href", true); 这个函数 重新刷新页面 这个功能就好用,如果是刷新页面不好用,除了这个重定向,还有其他的办法吗?因为这个页面有检索,重定向 会让检索失效[/quote] 比较粗暴的办法,就是js把选中行记录到服务器的hidden控件。 那么后台刷新,也不会把hidden擦掉。然后js中判断Hidden如果有值,则选中该行的checkbox
qq_41465750 2018-03-20
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
你这个应该是页面刷新导致js失效了吧,改用on来委托注册
我在js打断点调试,点击button之后,就走不到这了,能给个办法 解决一下吗
qq_41465750 2018-03-20
  • 打赏
  • 举报
回复
引用 3 楼 hanjun0612 的回复:
因为webform到服务器后,就要刷新页面,所以把js刷没了。
如果我在js上使用ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "window.location.href = window.location.href", true); 这个函数 重新刷新页面 这个功能就好用,如果是刷新页面不好用,除了这个重定向,还有其他的办法吗?因为这个页面有检索,重定向 会让检索失效

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧