try<select name="select" size="7" onChange="test(this.options[this.selectedIndex].text)">
or<script language="JavaScript">
function test(val){var npos = val.indexOf(",");
if (npos >=0)
  val = val.substring(npos+1);var c=document.getElementsByName('box'); for(i=0;i<c.length;i++)
  c[i].checked=val.indexOf(c[i].value)!=-1;}
</script>>>>如何把把select里的value值转为数组
var list = val.split(/,/);

解决方案 »

  1.   

    <script language="JavaScript">
    function test(val){
           var npos = val.indexOf(",");
        if (npos >=0) val = val.substring(npos+1);
           var c = document.getElementsByName('box');
        for(i=0;i<c.length;i++)c[i].checked=val.indexOf(c[i].value)!=-1;
    }
    </script><select name="select" size="7" onChange="test(value)">
    <option value="1,1">1</option>
    <option value="16,2">2</option>
    <option value="1,3">3</option>
    <option value="1,1,2">1,2</option>
    <option value="1,1,3">1,3</option>
    <option value="255,2,11">2,11</option>
    </select>
    1<input type="checkbox" name="box" value="1">
    2<input type="checkbox" name="box" value="2">
    3<input type="checkbox" name="box" value="3">
    10<input type="checkbox" name="box" value="10">
    11<input type="checkbox" name="box" value="11">
    =================
    代码及格式如上,按saucer朋友的方法出现BUG,select点选最后一项时checkbox选中错误
    select点选2,11时,本应该只有value等于11和2和checkbox被置为选中.
    但是现在value等于1的checkbox也会被置为选中.
      

  2.   

    it is not because my code is wrong, it is because you are using indexOf!!<script language="JavaScript">
    function test(val){
           var npos = val.indexOf(",");
        if (npos >=0) val = val.substring(npos+1);
        var valist = val.split(/,/);
           var c = document.getElementsByName('box');
        for(i=0;i<c.length;i++)
        {
          c[i].checked = false;
          for (var j=0; j < valist.length; j++)
            if (valist[j] == c[i].value)
    {
    c[i].checked = true;
    break;
    }
        
        }
    }
    </script>