用js实现把一组同名复选框中已经选中的复选框的value值都加入到一个树组中!

解决方案 »

  1.   

    var a = new Array();var checkBoxes = document.getElementsByName("checkBoxName")
    for(var i=0; i<checkBoxes.length; i++){
      a[i] = checkBoxes[i].selected;
    }
      

  2.   

    我想主要实现这样的功能,一组复选框,把选中的复选框的值都加到一个textfield中
      

  3.   

    不好意思
    请把selected改为checked
      

  4.   

    <html>
    <head>
    <title>Test</title>
    </head>
    <body>
    <input type="checkbox" name="checkBoxName" checked="true"><br>
    <input type="checkbox" name="checkBoxName"><br>
    <input type="checkbox" name="checkBoxName"><br>
    <input type="checkbox" name="checkBoxName"><br><input type="text" id="textField" value=""><br><input type="button" value="Show Value" onclick="javascript:showValue()"><br><script>function showValue(){
    var a = new Array(); var checkBoxes = document.getElementsByName("checkBoxName")
    for(var i=0; i<checkBoxes.length; i++){
    a[i] = checkBoxes[i].checked;
    }

    textField.value = a;
    }</script></body>
    </html>
      

  5.   

    <html>
    <head>
    <title>Test</title>
    </head>
    <body>
    <input type="checkbox" name="checkBoxName" checked="true" value="check1"><br>
    <input type="checkbox" name="checkBoxName" value="check2"><br>
    <input type="checkbox" name="checkBoxName" value="check3"><br>
    <input type="checkbox" name="checkBoxName" value="check4"><br><input type="text" id="textField" value=""><br><input type="button" value="Show Value" onclick="javascript:showValue()"><br><script>function showValue(){
    var a = new Array(); var checkBoxes = document.getElementsByName("checkBoxName")
    var idx=0;
    for(var i=0; i<checkBoxes.length; i++){
    if(checkBoxes[i].checked == true)
    a[idx++] = checkBoxes[i].value;
    }

    textField.value = a;
    }</script></body>
    </html>
      

  6.   

    你的树组是什么意思?是数组呢?还是树组?
    如果是数组呢.那就是这样做.
    function changeRadio(obj){
    var size=0;
    var checkObj = document.getElementsByName("check");
    for(i=0;i<checkObj.length;i++){
    if(checkObj[i].checked){
    size++;
    }
    }
    var valueArray = new Array(size);
    var cnt = 0;
    for(j=0;j<checkObj.length;j++){
    if(checkObj[j].checked)
    valueArray[cnt++]=checkObj[j].value;
    }
    for(k=0;k<valueArray.length;k++){
    alert(valueArray[k]);
    }
    }
      

  7.   

    我看看啊
    不需要按钮的,是选中一个就自动在textField里加一个值的
      

  8.   

    <html>
    <head>
    <title>Test</title>
    </head>
    <body>
    <input type="checkbox" name="checkBoxName" value="check1" onclick="javascript:showValue()"><br>
    <input type="checkbox" name="checkBoxName" value="check2" onclick="javascript:showValue()"><br>
    <input type="checkbox" name="checkBoxName" value="check3" onclick="javascript:showValue()"><br>
    <input type="checkbox" name="checkBoxName" value="check4" onclick="javascript:showValue()"><br><input type="text" id="textField" value=""><br><script>function showValue(){
    var a = new Array(); var checkBoxes = document.getElementsByName("checkBoxName")
    var idx=0;
    for(var i=0; i<checkBoxes.length; i++){
    if(checkBoxes[i].checked == true)
    a[idx++] = checkBoxes[i].value;
    }

    textField.value = a;
    }</script></body>
    </html>
      

  9.   

    <html>
    <head><title>CheckBox Selected By Ctrl</title></head>
    <script>
    function changeRadio(obj){
    var size=0;
    var checkObj = document.getElementsByName("check");
    for(i=0;i<checkObj.length;i++){
    if(checkObj[i].checked){
    size++;
    }
    }
    var valueArray = new Array(size);
    var cnt = 0;
    for(j=0;j<checkObj.length;j++){
    if(checkObj[j].checked)
    valueArray[cnt++]=checkObj[j].value;
    }
    for(k=0;k<valueArray.length;k++){
    targetObj.value+=valueArray[k]+",";
    }
    }
    /**
    * 给隐藏域的name赋值,便于name组装成一个数组
    * @checkIndex 选择的checkBox对象所在的索引下标
    * @dataValue 需要对目录对象赋值的值
    */
    function datanameEnable(checkIndex,dataValue) {
    var target = event.target || event.srcElement;
    var checkBoxList = document.getElementsByName(target.name);
    var chk = checkBoxList[checkIndex];
    if(event.ctrlKey){
    var checki=-1;
    if(chk.checked){
    for(i=checkIndex-1;i>=0;i--){
    if(checkBoxList[i].checked && checkIndex!=i){
    checki=i;
    break;
    }
    }
    if(checki>-1){
    if(checkIndex>=checki){
    for(j=(checki+1);j<checkIndex;j++){
    checkBoxList[j].checked=!checkBoxList[j].checked;;
    }
    }
    }
    }else{
        var unchecki = -1;
    for(k=checkIndex-1;k>=0;k--){
    if(!checkBoxList[k].checked && checkIndex!=k){
    unchecki=k;
    break;
    }
    }
    if(unchecki>-1 && checkIndex>=unchecki){
    for(j=unchecki+1;j<checkIndex;j++){
    checkBoxList[j].checked=!checkBoxList[j].checked;;
    }
    }
    }
    }
    }
    </script>
    <body>
    <input type="checkBox" name="check" value="check1" onclick="javascript:datanameEnable(0,'check1');">记录1<br>
    <input type="checkBox" name="check" value="check2" onclick="javascript:datanameEnable(1,'check2');">记录2<br>
    <input type="checkBox" name="check" value="check3" onclick="javascript:datanameEnable(2,'check3');">记录3<br>
    <input type="checkBox" name="check" value="check4" onclick="javascript:datanameEnable(3,'check4');">记录4<br>
    <input type="checkBox" name="check" value="check5" onclick="javascript:datanameEnable(4,'check5');">记录5<br>
    <input type="checkBox" name="check" value="check6" onclick="javascript:datanameEnable(5,'check6');">记录6<br>
    <input type="checkBox" name="check" value="check7" onclick="javascript:datanameEnable(6,'check7');">记录7<br>
    <input type="checkBox" name="check" value="check8" onclick="javascript:datanameEnable(7,'check8');">记录8<br>
    <input type="checkBox" name="check" value="check9" onclick="javascript:datanameEnable(8,'check9');">记录9<br>
    <input type="checkBox" name="check" value="check10" onclick="javascript:datanameEnable(9,'check10');">记录10<br>
    <input type="checkBox" name="check" value="check11" onclick="javascript:datanameEnable(10,'check11');">记录11<br>
    <input type="checkBox" name="check" value="check12" onclick="javascript:datanameEnable(11,'check12');">记录12<br>
    <input type="checkBox" name="check" value="check13" onclick="javascript:datanameEnable(12,'check13');">记录13<br>
    <input type="checkBox" name="check" value="check14" onclick="javascript:datanameEnable(12,'check14');">记录14<br>
    <input type="checkBox" name="check" value="check15" onclick="javascript:datanameEnable(14,'check15');">记录15<br>
    <input type="button" class=radiobutton value="赋值" onclick="javascript:changeRadio(this);">
    <br>
    <input type="text" name="targetObj" value="" length="50">
    </body>
    </html>
      

  10.   

    呵呵,是数组,为实现这样的功能:
    一组复选框,把选中的复选框的值都加到一个textfield中,不需要按钮,是选中一个复选框就自动往textfield里加一个值
      

  11.   

    polarman:
    a[idx++] = checkBoxes[i].value;
    这个能用简单点的方法解释下吗?这个没大看懂
      

  12.   

    huxinsheng168(望M止渴) 谢谢你,你没大明白我的意思,一会给你结分啊,我先看看polarman的,他做的差不多了
      

  13.   

    不是啊.我写的只是把昨天一个人的答案结合在一起了,是一个按住ctrl多选复选框的功能.
    你要的功能按按钮就能实现啊.
      

  14.   

    checkbox的value最终都是要从数据库里读出来的,目前一步一步的做呢,先把选中的值即时的传到textfield里
      

  15.   

    <script language="JavaScript">
      function test(){
      
        var checks=document.getElementsByName("Check");
        var i=0;
        var arrayObj = new Array();    for(;i<checks.length;i++){
          if(checks[i].checked){
            arrayObj[i]=checks[i].value;
          }
        }
        alert(arrayObj.toString());
      }
     
    </script>
    <form name="form1">
    <center>
    <h1>Click one of the check boxes...</h1><table border bgcolor=cyan width=200>
    <tr><td><input type="checkbox" id="Check1" name="Check" value="Check 1" >Check 1</td></tr>
    <tr><td><input type="checkbox" id="Check2" name="Check" value="Check 2">Check 2</td></tr>
    <tr><td><input type="checkbox" id="Check3" name="Check" value="Check 3">Check 3</td></tr>
    <tr><td><input type="checkbox" id="Check4"  name="Check" value="Check 41">Check 4</td></tr>
    <tr><td><input type="checkbox" id="Check5" name="Check" value="Check 5">Check 5</td></tr>
    </table><br><input type="button" value="按钮" name="B1" onclick="test()"><br>
    <input type="text" name="Textbox" size=25>
    </center>
    </form>
      

  16.   

    a[idx++] = checkBoxes[i].value;
    这个能用简单点的句子来表示吗?没大看懂
      

  17.   

    全部帮你搞定<html>
    <head><title>CheckBox Selected By Ctrl</title></head>
    <script>
    /**
    * 给隐藏域的name赋值,便于name组装成一个数组
    * @checkIndex 选择的checkBox对象所在的索引下标
    * @dataValue 需要对目录对象赋值的值
    */
    function datanameEnable(checkObj) {
    var checkObjList = document.getElementsByName("check");
    if(checkObj.checked){
    targetObj.value+=checkObj.value+",";
    }
    if(!checkObj.checked){
    targetObj.value="";
    for(i=0;i<checkObjList.length;i++){
    if(checkObjList[i].checked){
    targetObj.value+=checkObjList[i].value+",";
    }
    }
    }

    }
    </script>
    <body>
    <input type="checkBox" name="check" value="check1" onclick="javascript:datanameEnable(this);">记录1<br>
    <input type="checkBox" name="check" value="check2" onclick="javascript:datanameEnable(this);">记录2<br>
    <input type="checkBox" name="check" value="check3" onclick="javascript:datanameEnable(this);">记录3<br>
    <input type="checkBox" name="check" value="check4" onclick="javascript:datanameEnable(this);">记录4<br>
    <input type="checkBox" name="check" value="check5" onclick="javascript:datanameEnable(this);">记录5<br>
    <input type="checkBox" name="check" value="check6" onclick="javascript:datanameEnable(this);">记录6<br>
    <input type="checkBox" name="check" value="check7" onclick="javascript:datanameEnable(this);">记录7<br>
    <input type="checkBox" name="check" value="check8" onclick="javascript:datanameEnable(this);">记录8<br>
    <input type="checkBox" name="check" value="check9" onclick="javascript:datanameEnable(this);">记录9<br>
    <input type="checkBox" name="check" value="check10" onclick="javascript:datanameEnable(this);">记录10<br>
    <input type="checkBox" name="check" value="check11" onclick="javascript:datanameEnable(this);">记录11<br>
    <input type="checkBox" name="check" value="check12" onclick="javascript:datanameEnable(this);">记录12<br>
    <input type="checkBox" name="check" value="check13" onclick="javascript:datanameEnable(this);">记录13<br>
    <input type="checkBox" name="check" value="check14" onclick="javascript:datanameEnable(this);">记录14<br>
    <input type="checkBox" name="check" value="check15" onclick="javascript:datanameEnable(this);">记录15<br>

    <input type="text" name="targetObj" value="" length="150">
    </body>
    </html>
      

  18.   

    huxinsheng168(望M止渴) 分给的少了,还想多给你,你去web里的javascript里找这个同样的问题,也是我问的,你随便说句话,我再给你分,这么再给我不会给了,谢谢你啊
      

  19.   

    polarman
    for(var i=0; i<checkBoxes.length; i++){
    if(checkBoxes[i].checked == true)
    a[idx++] = checkBoxes[i].value;
    }
    a[idx++] = checkBoxes[i].value;
    这个能用简单点的句子来表示和解释下吗?没大看懂谢谢你啊
      

  20.   

    for(var i=0; i<checkBoxes.length; i++){
    if(checkBoxes[i].checked == true)
    a[idx++] = checkBoxes[i].value;
    }
    这个其实还可以简单点
    for(i=0; i<checkBoxes.length; i++){
    if(checkBoxes[i].checked)
    a[idx++] = checkBoxes[i].value;
    }
    因为checkBoxes[i].checked本身就是一个boolean值.就没必要做==true判断了
    如果checkBoxes[i]选中,那么就把这个选中的复选框的值赋给数组a
      

  21.   

    你真不再要分了啊,那我就把另一个区(web->js)的帖子结分了啊
      

  22.   

    a[idx++]
    就是说.先定义一个idx=0;
    然后在
    for(i=0; i<checkBoxes.length; i++){
    if(checkBoxes[i].checked)//如果选中
    a[idx++] = checkBoxes[i].value;//那么idx就自动++,这个++相当于idex=idex+1;可以简写成id++
    }
      

  23.   

    a[idx++] = checkBoxes[i].value;
    ==
    a[idx] = checkBoxes[i].value;
    idx = idx + 1;