有这样一个问题:
当记录多条(两条以上)时,能记录所选的checkbox<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Untitled Document</title>
<script>
var mailSelect = "";
function addMail()
{
var mailArray=new Array();
var mailObjects=document.all.mailObj;//var mailObjects=document.getElementsByName("mailObj");
alert(mailObjects.length);
for(var i=0;i<mailObjects.length;i++){if(mailObjects[i].checked ){
mailArray[mailArray.length]=mailObjects[i].value;
}
}
document.all.mailList.value=mailArray.join(",");
}
</script>
</head><body>
<center>
<table width="136" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><input type="checkbox" name="mailObj" value="[email protected]" onClick="addMail();"></td>
<td id="mail">[email protected]</td>
</tr>
<tr>
<td><input type="checkbox" name="mailObj" value="[email protected]" onClick="addMail();"></td>
<td id="mail">[email protected]</td>
</tr></table>
<br/>
<input type="text" size="50" maxlength="50" name="mailList">
</center>
</body>
</html>
但,当记录只有一条时 ,就不能记录了:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Untitled Document</title>
<script>
var mailSelect = "";
function addMail()
{
var mailArray=new Array();
var mailObjects=document.all.mailObj;//var mailObjects=document.getElementsByName("mailObj");
alert(mailObjects.length);
for(var i=0;i<mailObjects.length;i++){if(mailObjects[i].checked ){
mailArray[mailArray.length]=mailObjects[i].value;
}
}
document.all.mailList.value=mailArray.join(",");
}
</script>
</head><body>
<center>
<table width="136" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><input type="checkbox" name="mailObj" value="[email protected]" onClick="addMail();"></td>
<td id="mail">[email protected]</td>
</tr>
</table>
<br/>
<input type="text" size="50" maxlength="50" name="mailList">
</center>
</body>
</html>
请解决!

解决方案 »

  1.   

    用这个没应该没问题var mailObjects=document.getElementsByName("mailObj");
      

  2.   

    当记录只有一条时mailObjects.length不存在的吧
      

  3.   

    没有问题啊
    var mailObjects=document.getElementsByName("mailObj");
      

  4.   

    稍作修改就可以了<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>Untitled Document</title>
    <script>
    var mailSelect = "";
    function addMail()
    {
    var mailArray=new Array();
    var mailObjects=document.getElementById('mailObj');//var mailObjects=document.getElementsByName("mailObj");
    if(mailObjects)
    {
             // 如果只有一个对象,则length为null,执行else
    if(mailObjects.length)
    {
      alert(mailObjects.length);
      for(var i=0;i<mailObjects.length;i++){
       if(mailObjects[i].checked ){
    mailArray[mailArray.length]=mailObjects[i].value;
          }
       }
    }else
    {
               //一个对象,则直接取值就可以了~
    mailArray[mailArray.length]=mailObjects.value;
    }
    }
    document.all.mailList.value=mailArray.join(",");}
    </script>
    </head><body>
    <center>
    <table width="136" border="1" cellspacing="0" cellpadding="0">
    <tr>
    <td><input type="checkbox" name="mailObj" value="[email protected]" onClick="addMail();"></td>
    <td id="mail">[email protected]</td>
    </tr>
    </table>
    <br/>
    <input type="text" size="50" maxlength="50" name="mailList">
    </center>
    </body>
    </html>
      

  5.   

    对了,应该把checkbox的name换成ID,不能用getElementById,要用document.all()方法才对~
    如下~
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>Untitled Document</title>
    <script>
    var mailSelect = "";
    function addMail()
    {
    var mailArray=new Array();
    var mailObjects=document.all('mailObj');//var mailObjects=document.getElementsByName("mailObj");
    if(mailObjects)
    {
    if(mailObjects.length)
    {
    alert(mailObjects.length);
    for(var i=0;i<mailObjects.length;i++){ if(mailObjects[i].checked ){
    mailArray[mailArray.length]=mailObjects[i].value;
    }
    }
    }else
    {
    mailArray[mailArray.length]=mailObjects.value;
    }
    }
    document.all.mailList.value=mailArray.join(",");}
    </script>
    </head><body>
    <center>
    <table width="136" border="1" cellspacing="0" cellpadding="0">
    <tr>
    <td>
    <input type="checkbox" id="mailObj" value="[email protected]" onClick="addMail();">
    <input type="checkbox" id="mailObj" value="[email protected]" onClick="addMail();">
    </td>
    <td id="mail">[email protected]</td>
    </tr>
    </table>
    <br/>
    <input type="text" size="50" maxlength="50" name="mailList">
    </center>
    </body>
    </html>