流星阿勇 发表于 2007-12-18 16:55

复选框值传向文本域问题??

请问我用发下代码后为什么只要选中一个复选框,所有的复选框值一下都传到文本域里了。。。请问这是为什么。。谁能给我改改。。。谢了。
<script language="javascript">
function a()
{
var i="";
var sum="";
for (j=0;j<=3;j++)
{
if  (document.form1.elements[j].Checked=true)
          {
        i=document.form1.elements[j].value+"\n";
       
         }
    sum=sum+i;
          
  }       
   document.form1.t1.value=sum;//传向文本域的值
}
</script>

[[italic] 本帖最后由 流星阿勇 于 2007-12-18 16:58 编辑 [/italic]]

lmhllr 发表于 2007-12-18 17:11

判断要用 ==

还有,代码似乎不完整

流星阿勇 发表于 2007-12-18 17:15

[quote]原帖由 [bold][underline]lmhllr[/underline][/bold] 于 2007-12-18 17:11 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1153084&ptid=193176][img]http://bbs.bc-cn.net/images/common/back.gif[/img][/url]
判断要用 ==

还有,代码似乎不完整 [/quote]
你说的是IF里的那个判断要用==吗?



下面是完整代码:麻烦你帮我看看
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script language="javascript">
function a()
{
var i="";
var sum="";
for (j=0;j<=3;j++)
{
if  (document.form1.elements[j].Checked=true)
          {
        i=document.form1.elements[j].value+"\n";
       
         }
    sum=sum+i;
          
  }       
   document.form1.t1.value=sum;
}
</script>

<body>
<form id="form1" name="form1" method="post" action="">
  <label>
  <input type="checkbox" name="c1" value="国家" onclick="a()">
  国家</label>
  <label>
  <input type="checkbox" name="c2" value="军事" onclick="a()" >
  军事</label>
  <label>
  <input type="checkbox" name="c3" value="计算机"  onclick="a()">
  计算机</label>
  <label>
  <input type="checkbox" name="c4" value="科学"  onclick="a()">
  科学</label>
  <p>
    <label>
    <textarea name="t1" rows="6"></textarea>
    </label>
  </p>
</form>
</body>
</html>

流星阿勇 发表于 2007-12-18 17:41

我换成双等号    if  (document.form1.elements[j].Checked==true)   就没有反应了。不知道这判断哪里错了

375671339 发表于 2007-12-18 20:13

献丑

这是我修改过的
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script language="javascript">
function a()
{
var i="";
var sum="";
for (j=0;j<=3;j++)
{
if  (document.form1.elements[j].checked==true)
      {
            i=document.form1.elements[j].value+"\n";  
        sum=sum+i;
      }     
  }   
   document.form1.t1.value=sum;
}
</script>

<body>
<form id="form1" name="form1" method="post" action="">
  <label>
  <input type="checkbox" name="c1" value="国家" onclick="a()">
国家</label>
  <label>
  <input type="checkbox" name="c2" value="军事" onclick="a()" >
  军事</label>
  <label>
  <input type="checkbox" name="c3" value="计算机"  onclick="a()">
  计算机</label>
  <label>
  <input type="checkbox" name="c4" value="科学"  onclick="a()">
  科学</label>
  <p>
    <label>
    <textarea name="t1" rows="6"></textarea>
    </label>
  </p>
</form>
</body>
</html>
在 javascript 里是区分大小写的,你把 checked 写成 Checked 了,
还有确实要用 "==" 才行,那个sum=sum+i;应该放到if里面去。
对了
那个<label></label>标签好象没有起到作用哦!

页: [1]

编程论坛