表单中一个input,id="abc"有很多的checkbox,name均为"cityname",类似:<input type="checkbox" value="北京" name="cityname" id="cityname" />
<input type="checkbox" value="上海" name="cityname" id="cityname" />
<input type="checkbox" value="广州" name="cityname" id="cityname" />问题:当点击了相应的checkbox后,将这个值传到abc中?
我用<input type="checkbox" value="北京" name="cityname" id="cityname" onclick="document.form1.abc.value=this.value;"  /> 这样似乎只能是把当前点击的值传过去,但是怎么追加呢?比如我点击了多个?像这样的怎么实现:<input name="abc" id="abc" type="text" value="北京,上海,广州" />

解决方案 »

  1.   

    找到了,呵呵
    共享下:<form   name="frm">   
      <input   type="checkbox"   name="a"   value="冰箱"   onclick="checkItem();">冰箱 
      <input   type="checkbox"   name="a"   value="电脑"   onclick="checkItem();">电脑
      <input   type="checkbox"   name="a"   value="洗衣机"   onclick="checkItem();">洗衣机   
      <input   type="hidden"   name="b">   
      </form>   
      <script>   
      function   checkItem(){   
      var   chkbox=document.getElementsByName("a");   
      var   v="";   
      for(var   i=0;i<chkbox.length;i++){   
      if(chkbox[i].checked)   v+=","+chkbox[i].value;   
      }   
      document.frm.b.value=v.replace(/^,{1}/,"");   
      }   
      </script>
      

  2.   

    onclick="document.form1.abc.value=document.getElementsByName("cityname").value;" 
      

  3.   

    如果是选择所有的按钮后,按递交按钮递交的,那么传过去的值已经是 xxx, xxx, xxx了。 服务器端直接取cityname即可。
    如果要给abc赋值,在递交前赋值
    s =""
    var a = document.form1.cityname;
    for(var i=0;i<a.length;i++){
       if(a[i].checked) s += a[i] + ",";
    }
    if(s!="") s = s.substr(0,s.length-1);
    document.form1.abc.value =s;