我的代码如下,函数能处理表单的文本值,就是获得不了单选框的值。单选框处理语句单独作为一个函数用时可以正常接收并处理,但放到与文本框处理语句一起组成函数时,就只能读出文本框的值,而单选框的值无法显示。
<html> <head> 
<meta   http-equiv="Content-Language"   content="zh-cn"> 
<meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312"> 
<meta   name="GENERATOR"   content="Microsoft   FrontPage   4.0"> 
<meta   name="ProgId"   content="FrontPage.Editor.Document"> 
<title> JS获取表单各项值 </title> 
<script   type="text/javascript"> 
function   checkform() 

var   c_myname=document.myform.myname.value 
var   c_myage=document.myform.myage.value 
var   c_myjob=document.myform.myjob.value 
var   c_myjober=document.myform.myjober.value 
var   c_mytext=document.myform.mytext.value 
var   c_sex=document.myform.mysex 
document.write("以下是您所填的内容: <br> ") 
document.write("姓名:"+c_myname+" <br> ") 
for(i=0;i <myform.mysex.length;i++) 

if(myform.mysex[i].checked==true) 

c_sex=myform.mysex[i].value 
document.write("性别:"+c_sex) 
break 


document.write("年龄:"+c_myage+" <br> ") 
document.write("职业:"+c_myjob+" <br> ") 
document.write("职务:"+c_myjober+" <br> ") 
document.write("简历:"+c_mytext+" <br> ") 
} </script> 
</head> <body> <form   method="POST"   action="--WEBBOT-SELF--"   name="myform"> 
        <p   align="center"> 注册程式 </p> 
    <p> 姓名: <input   type="text"   name="myname"   size="20"> </p> 
    <p> 性别: <input   type="radio"   value="男"   name="mysex"> 男 <input   type="radio"   name="mysex"   value="女"> 女 </p> 
    <p> 年龄: <input   type="text"   name="myage"   size="20"> </p> 
    <p> 职业: <input   type="text"   name="myjob"   size="20"> </p> 
    <p> 职务: <input   type="text"   name="myjober"   size="20"> </p> 
    <p> 简历: <textarea   rows="2"   name="mytext"   cols="20"> </textarea> </p> 
    <p>   </p> 
    <p>   </p> 
    <p> <input   type="submit"   value="提交"   name="B1"   onclick="checkform()"> <input   type="reset"   value="全部重写"   name="B2"> </p> 
</form> </body> </html> 

解决方案 »

  1.   

    重复贴,请看
    http://topic.csdn.net/u/20080207/13/92c3c1d5-1d00-4a49-b012-45fe5135dd13.html
      

  2.   

    document.myform.mysex得到的是个数组,你应该遍历判断:
    for (var i = 0; i < document.myform.mysex.length; i++)
    if (document.myform.mysex[i].checked == true) value = document.myform.mysex[i].value;
    alert(value);//这个就是选中的。
      

  3.   

    辛苦了,各位!分是一定会送的。但回答都是文不对题。
    单独将以下代码作为一个函数,表单中只有一个单选框项目时,是可以接收到值的,但和INPUT=“TEXT”等放在一起时,就不能接收到值。
    请各位大侠在回答前先将代码运行一下,看看效果之后再做回答吧。
    for(i=0;i   <myform.mysex.length;i++)   
    {   
    if(myform.mysex[i].checked==true)   
    {   
    c_sex=myform.mysex[i].value   
    document.write("性别:"+c_sex)   
    break   
    }   
    }   
    还请各位帮帮忙!!!
      

  4.   

    建议你用
    document.getElementsByName( "mysex")[0].value和document.getElementsByName( "mysex")[1].value
      

  5.   

    同意5楼,你最好用DOM来控制元素,比如给text也设置一个ID,然后用document.getElementById('ID');来获取元素,document.getElementsByName()。获取的是数组,初学的时候容易犯错
      

  6.   

    顺便提示下:document.getElementsByName('id')[index].value这样才会有值的
      

  7.   

    to dada20042030 :
    你笔误了。。
    document.getElementsByName('name')[index].value
    取得是name,不是ID
      

  8.   

    document.write把页面上的元素都替换掉了,这时候mysex对象已经不存在了,当然取不到值,你把获得mysex的值的函数写在document.write上面就可以了
    function       checkform()   
    {   
    var       c_myname=document.myform.myname.value   
    var       c_myage=document.myform.myage.value   
    var       c_myjob=document.myform.myjob.value   
    var       c_myjober=document.myform.myjober.value   
    var       c_mytext=document.myform.mytext.value   
    var       c_sex=document.myform.mysex   
    for(i=0;i   <myform.mysex.length;i++)   
    {   
    if(myform.mysex[i].checked==true)   
    {   
    c_sex=myform.mysex[i].value   break   
    }   
    }   
    document.write("以下是您所填的内容:   <br>   ")   
    document.write("姓名:"+c_myname+"   <br>   ")   document.write("性别:"+c_sex)   
    document.write("年龄:"+c_myage+"   <br>   ")   
    document.write("职业:"+c_myjob+"   <br>   ")   
    document.write("职务:"+c_myjober+"   <br>   ")   
    document.write("简历:"+c_mytext+"   <br>   ")   
    }