http://51js.1000box.net/showmsg.php?bo=3&msgid=40427

解决方案 »

  1.   

    <select onchange="getData.src='xxx.jsp?xxxx='+this.value">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    </select><script id="getData" src="">//从服务器读得数据并以JS形式输出</script>
      

  2.   

    我写了几个函数不知道对你是否有用,可以直接使用
    //--- 方法名: changeSelectOption(ASlcChange,AChangeArray,ANameArray,AMode,ASelectedValue,ACompartChar)
    //--- 功能: 改变下拉框ASlcChange中的选项 
    //--- 返回: 
    //---     ASlcChange     :  要改变的下拉框   
    //---     AChangeArray   :  用来改变下拉框的数组
    //---     ANameArray     :  options各项如 {value,text} 等
    //---     AMode          :  标志改变的方式 0-全替换,1-除第一项外全替换,2-在后面添加
    //---     ASelectedValue :  根据选中等同ANameArray的第一个值
    //---     ACompartChar   :  分隔符,分隔字符串
    //--- 创建日期:       2001-09-06  最近更新日期:   2001-09-06
    //--- 创建程序员:     xg_delayth  最近更新程序员: xg_delayth
    //--- 维护程序员:     xg_delayth 
    //--- 不足之处:没有设定默认值  
    //--- 举例:  
    //---    var arrayClassValue=new Array("35^采购单","82^商品加工单");
    //---    var arrayClassName=new Array("value","innerText");
    //---    changeSelectOption(f1.SHEET_CLASS,arrayClassValue,arrayClassName,2,'35','^');
      function changeSelectOption(ASlcChange,AChangeArray,ANameArray,AMode,ASelectedValue,ACompartChar){
        var tempOption;
        var tempLength;
        var tempArray;
        var i;
        //--- 去掉多余的下拉框选项
        switch(AMode){
          case 0:
            selectClear(ASlcChange,false);
            break;
          case 1:
            selectClear(ASlcChange,true);
            break;
          case 2:
          default:
        }
        //--- 加上所要的选项
        for(i = 0; i < AChangeArray.length; i ++){
          //--- 分割value和text值
          tempArray = AChangeArray[i].split(ACompartChar);
          tempOption = document.createElement("OPTION");
          //--- 赋值
          for(j=0;j<ANameArray.length;j++){
            eval("tempOption."+ANameArray[j] + "= tempArray[j]");
            if(0==j && ASelectedValue==tempArray[j]){
              tempOption.selected=true;
            }        
          }  
          ASlcChange.appendChild(tempOption);
        }
      }
    //***************************************************************************************************
    //---  方法名: selectClear(ASlcClear,AHaveFirst)
    //---  功能: 按要求清空下拉框中的值
    //---  返回
    //---     ASlcClear:要清空的下拉框  
    //---     AHaveFirst:是否要删除第一个选项,true删,false保留  
    //---  创建日期:     2001-07-27 最近更新日期:     2001-07-27
    //---  创建程序员:   xg_delayth 最近更新程序员:   xg_delayth
    //---  维护程序员:   xg_delayth
    //---  举例:
      function selectClear(ASlcClear,AHaveFirst){
        var tempChildren = ASlcClear.children;
        var tempLength = tempChildren.length;
        var i=0;
        if (AHaveFirst == false){i=1;}
        if (tempLength > i){
          for (;tempLength > i;tempLength--){
            ASlcClear.remove(tempLength-1); 
          }  
        }
      }
    //***************************************************************************************************