我最近想实现选中页面上的某一行,然后默认选中该行的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之后,该功能失效,请大神帮忙看看 该怎么解决

解决方案 »

  1.   

    在没点击button时 选中table的一行 刚才打错字了
      

  2.   

    你这个应该是页面刷新导致js失效了吧,改用on来委托注册
      

  3.   

    因为webform到服务器后,就要刷新页面,所以把js刷没了。
      

  4.   

    我在js打断点调试,点击button之后,就走不到这了,能给个办法 解决一下吗
      

  5.   

    如果我在js上使用ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "window.location.href = window.location.href", true); 这个函数 重新刷新页面 这个功能就好用,如果是刷新页面不好用,除了这个重定向,还有其他的办法吗?因为这个页面有检索,重定向 会让检索失效
      

  6.   

    如果我在js上使用ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "window.location.href = window.location.href", true); 这个函数 重新刷新页面 这个功能就好用,如果是刷新页面不好用,除了这个重定向,还有其他的办法吗?因为这个页面有检索,重定向 会让检索失效
    比较粗暴的办法,就是js把选中行记录到服务器的hidden控件。
    那么后台刷新,也不会把hidden擦掉。然后js中判断Hidden如果有值,则选中该行的checkbox
      

  7.   

    如果我在js上使用ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "window.location.href = window.location.href", true); 这个函数 重新刷新页面 这个功能就好用,如果是刷新页面不好用,除了这个重定向,还有其他的办法吗?因为这个页面有检索,重定向 会让检索失效
    比较粗暴的办法,就是js把选中行记录到服务器的hidden控件。
    那么后台刷新,也不会把hidden擦掉。然后js中判断Hidden如果有值,则选中该行的checkbox
    我可能没说明白,点击页面上的button之后,js的函数就执行不到了,就是我无论如何点击页面的上一行,都无法执行,您说的是记录,可是我点击button之后,我不是要保留选择的radio,我是希望再选择一行也能选中一个radio
      

  8.   

    如果我在js上使用ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "window.location.href = window.location.href", true); 这个函数 重新刷新页面 这个功能就好用,如果是刷新页面不好用,除了这个重定向,还有其他的办法吗?因为这个页面有检索,重定向 会让检索失效
    比较粗暴的办法,就是js把选中行记录到服务器的hidden控件。
    那么后台刷新,也不会把hidden擦掉。然后js中判断Hidden如果有值,则选中该行的checkbox
    我可能没说明白,点击页面上的button之后,js的函数就执行不到了,就是我无论如何点击页面的上一行,都无法执行,您说的是记录,可是我点击button之后,我不是要保留选择的radio,我是希望再选择一行也能选中一个radio
    那是你js的问题。Js用 live来绑定新增行的click事件。
      

  9.   

    如果我在js上使用ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "window.location.href = window.location.href", true); 这个函数 重新刷新页面 这个功能就好用,如果是刷新页面不好用,除了这个重定向,还有其他的办法吗?因为这个页面有检索,重定向 会让检索失效
    比较粗暴的办法,就是js把选中行记录到服务器的hidden控件。
    那么后台刷新,也不会把hidden擦掉。然后js中判断Hidden如果有值,则选中该行的checkbox
    我可能没说明白,点击页面上的button之后,js的函数就执行不到了,就是我无论如何点击页面的上一行,都无法执行,您说的是记录,可是我点击button之后,我不是要保留选择的radio,我是希望再选择一行也能选中一个radio
    那是你js的问题。Js用 live来绑定新增行的click事件。
    是这样吗? 
    $(function () {
                $('#tab tr').bind('click', function () { $(this).find("input[type='radio']").prop("checked", true); });
            });
    修改之后 还和以前的现象一样吗
      

  10.   


    $(function () {
                $('#tab tr').bind('click', function () { $(this).find("input[type='radio']").prop("checked", true); });
            });
    我是用这个方法 之后 现象还是一样啊?
      

  11.   


    $(function () {
                $('#tab tr').bind('click', function () { $(this).find("input[type='radio']").prop("checked", true); });
            });
    我是用这个方法 之后 现象还是一样啊?$(function () {
                $('#tab tr').bind('click', function () { $(this).find("input[type='radio']").prop("checked", true); });
            });
    我是用这个方法 之后 现象还是一样啊?
    把bind换成on也不行 
    $(function () {
                $('#tab tr').on('click', function () { $(this).find("input[type='radio']").prop("checked", true); });
            });
      

  12.   

    不是bind,是live
      

  13.   

    不是bind,是live
    我使用的jQuery1.9 live编译不过去,使用on也还是不行啊
      

  14.   

    哦,我刚才查了 1.9去下了live,使用on代替。
    但是你的on写法不对。
    应该是
    $('#tab').on("click","tr",function(){
      alert("x");
    })
      

  15.   

    哦,我刚才查了 1.9去下了live,使用on代替。
    但是你的on写法不对。
    应该是
    $('#tab').on("click","tr",function(){
      alert("x");
    })
    非常感谢你,我按照你的写法改了,但是不好用,现在的现象是点击完button之后,根本就执行不到 $(function () {}里面的内容了,无论我放什么js函数都不行,是不是 $(function () {}在执行完服务器代码有什么限制吗?
      

  16.   

    你浏览器调试看看js是不是出问题了。
    照道理来说除非你后台对前台Js有改动,不然button的刷新还是会再次执行 $(function () {}这个加载动作的。
      

  17.   

    还是用AJAX吧。这样和用户的交互能好一些,你也用不着愁那个radio为什么也选不上了。
      

  18.   

     <ItemTemplate>
                <tr  style='cursor: pointer;' onclick ="selectline()">
                    <td>
                        <input  name ="check"  type="radio" />张三</td>
                </tr>
            </ItemTemplate>
    所以这个是什么东西