<form method="post" name="myFrom" action="">
<table width="102%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="30" bgcolor="#CCCCCC">
┏ ${jblx}用药记录 ┓
<input type="button" name="add" value="添加"
onClick="javascript:location.href='mxbGxy.do?method=queryGxyyy&treat=add&pid=110101040100000415&ytype=${jblx}'">
<input type="button" name="edit" value="修改" onclick="editt()">
 </td>
<c:forEach var="gxyyy" items="${gxy}">
<tr
onmousedown="setPointer(this,1, 'click', '#F7F7F7', '#CCFFCC', '#FFCC99');"
onmouseover="setPointer(this, 1, 'over', '#F7F7F7', '#CCFFCC', '#FFCC99');"
onmouseout="setPointer(this, 1, 'out', '#F7F7F7', '#CCFFCC', '#FFCC99');"
bgcolor="#F7F7F7">
<td colspan="2" align="center">
<input type="radio" name="id" value="拿到">
</td>
<td align="center" bgcolor="#F7F7F7">
<a href="" target="_self">${gxyyy.personalId}</a>
</td>
</tr>
</c:forEach>
script language="javascript">
      function editt(){
          //document.write("进来了       ");
      
          var ids=document.myFrom.id.value;
          alert(document.myFrom.id.value);          document.write("LLLLL   "+ids);
</script>
运行后alert里报的总是undefined,但要是把单选钮放在forEach外面就可以拿到,我现在是要从action中拿到一组值然后随便选一条要进行修改

解决方案 »

  1.   

    可能forEach没有值,也可能一堆值,导致对应的id有N个,不如你用
              var ids=document.myFrom.id;
              alert(ids[0].value);
    试试看?
      

  2.   

    var ids=document.myFrom.id.value; 这是个数组吧
      

  3.   

    既然打印出是undefined,那么就判断下:
    if(typeof(id.value) == "undefined"){
    //表示有多个radio,必须遍历才知道具体是哪个radio。
    }
    代码:
    <script language="JavaScript" type="text/javascript">
    var result;
    function getRadioValue(){
    var rv = document.myFrom.id;
    if(typeof(rv.value)=="undefined"){
    for(var i = 0; i<rv.length; i++){
    if(rv[i].checked){
    result = rv[i].value;
    break;
    }
    }
    }else{
    result = rv.value;
    }
    alert(result);
    }
    </script>也就是说radio只有一个的时候,可以直接取值。有多个的时候不能直接取(直接取就是undefined),必须循环判断。