我做了一个表格,第一列是一个radio,点击下选中这行记录的值,我现在想点击整行的时候去执行选中radio的动作。
其实就是点击表格行的同时,选中该行第一列单元格里面的radio
应该怎么做呢?不知道能实现不?

解决方案 »

  1.   

    这么简单
    请看代码如下<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> New Document </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    </head><body onclick="setSelectedBgColor();">
    <script language="JavaScript">
    <!--
    var curObj= null;
    function setSelectedBgColor()
    {
     if(window.event.srcElement.tagName=='TD')
    {
    if(curObj!=null) curObj.style.background='';
    curObj=window.event.srcElement.parentElement;
    curObj.style.background='#ffdead';
    var ra = curObj.getElementsByTagName("input");
    ra[0].checked = true;
       }
       }
    //-->
    </script><table width=200 border=1 style="cursor:hand">
    <tr>
    <td><input type="radio" name="a"></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td><input type="radio" name="a"></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    </body>
    </html>
      

  2.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>行选中效果</title>
    <script language="javascript">
      function  radclick(objradio){
          event.cancelBubble=true;
      alert(objradio.value);
      }
      
      function tabclick(){
          var objrow,objrad;
      if(event.srcElement.tagName=="TD"){
          resetcolor();
          objrow=event.srcElement.parentNode;
      objrow.style.backgroundColor="#C8D6FB";
      objrad=objrow.cells[0].childNodes[0];//若嵌套结构有变化此处需要调整
      objrad.checked=true;
      objrad.onclick();
      }
      }
      
      function resetcolor(){
          var objrows=document.getElementsByTagName("tr");
      var i=0;
      while(objrows.item(i)){
          objrows.item(i).style.backgroundColor="#ffffff";
      i++;
      }
      }  
    </script>
    </head>
    <body>
    <table width="344" border="1" align="center" 
           cellpadding="0" cellspacing="0" 
       onclick="tabclick()" style="border-collapse:collapse">
      <tr>
        <td width="103">
          <input type="radio" name="rad1" value="单选1" onclick="radclick(this)"/>
        1</td>
        <td width="117">&nbsp;</td>
        <td width="102">&nbsp;</td>
      </tr>
      <tr>
        <td><input type="radio" name="rad1" value="单选2" onclick="radclick(this)"/>
        2</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input type="radio" name="rad1" value="单选3" onclick="radclick(this)"/>
        3</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input type="radio" name="rad1" value="单选4" onclick="radclick(this)"/>
          4</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input type="radio" name="rad1" value="单选5" onclick="radclick(this)"/>
        5</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
    </body>
    </html>
      

  3.   

    xingqiliudehuanghun() 老兄,你的代码怎么在选中radio的时候也能改变行颜色呢?
      

  4.   

    <script>
    window.onload=function(){
        var rows=document.getElementsByTagName("tr");
        for(var i=0;i<rows.length;i++){
            rows[i].onclick=check;
        }
    }
    function check(){
        var inputs=this.getElementsByTagName("input")
        for(var i=0;i<inputs.length;i++){
            if(inputs[i].type=="radio")inputs[i].checked=!inputs[i].checked;
        }
    }
    </script><table width="344" border="1" style="border-collapse:collapse">
      <tr><td><input type="radio" name="r" /></td></tr>
      <tr><td><input type="radio" name="r"/></td></tr>
      <tr><td><input type="radio" name="r"/></td></tr>
      <tr><td><input type="radio" name="r"/></td></tr>
    </table>
      

  5.   

    我习惯那样,因为那样的话用户很容易知道选择了哪一项.如果你不用那个效果的话可以把resetcolor();,objrow.style.backgroundColor="#C8D6FB";和函数resetcolor()去掉.
      

  6.   

    误解你的意思了,你是想在选中radio时也让行背景色改变.用这个函数替换掉原来函数.
      function  radclick(objradio){
          var objrow=event.srcElement.parentNode.parentNode;
          event.cancelBubble=true;
          resetcolor();//此函数功能为将所有行背景设置为白色
          objrow.style.backgroundColor="#C8D6FB";//设置选中行背景色
          alert(objradio.value);
      }
      

  7.   

    不好意思上面程序有些问题,用下面这个
      function  radclick(objradio){
          var objrow=event.srcElement.parentNode.parentNode;
          event.cancelBubble=true;
      if(event.srcElement.tagName=="INPUT"){
          resetcolor();//此函数功能为将所有行背景设置为白色
                   objrow.style.backgroundColor="#C8D6FB";//设置选中行背景色
      }  
          alert(objradio.value);
      }