posts - 104,  comments - 34,  trackbacks - 0
          沒用到 AJAX, 寫死的數據. 效果自己試試就知道了. 支持主流瀏覽器.

          <HTML>
          <HEAD>
          <TITLE>合同申請</TITLE>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          <SCRIPT LANGUAGE = JavaScript>
          /** Define object Dsy 構造器
          fieldValues - 三個表單域的名稱, 可以通過 request.getParameter(xxx) 取值
          defalutOptions - 默認選項
          */
          function Dsy(fieldValues, defalutOptions){
            this.Items = {};
            this.defalutOptions = defalutOptions;// 默認選項 
            this.fieldValues = fieldValues;// 三個表單域的名稱
          }

          Dsy.prototype.add = function(id, iArray){
            this.Items[id] = iArray;
          }

          Dsy.prototype.Exists = function(id){
            if (typeof(this.Items[id]) == "undefined")
              return false;
            return true;
          };

          Dsy.prototype.setup = function() {
              this.bean_change(0);
          }

          // This prototype method added by BeanSoft Studio
          Dsy.prototype.bean_change = function(v){
            var str = "0";
            for (i = 0; i < v; i++){
              str += ("_" + (document.getElementById(this.fieldValues[i]).selectedIndex - 1));
            };

            var ss = document.getElementById(this.fieldValues[v]);
            // Avoid a null exception
            if(ss == null) return;

              with(ss){
                length = 0;
                options[0] = new Option(this.defalutOptions[v], this.defalutOptions[v]);
                if (v && document.getElementById(this.fieldValues[v - 1]).selectedIndex > 0 || !v){
                  if (this.Exists(str)){
                    array = this.Items[str];
                    for (i = 0; i < array.length; i++)
                      options[length] = new Option(array[i], array[i]);
                    if (v)
                      options[1].selected = true;
                  }
                }

                if (++v < s.length){
                  this.bean_change(v);
                }
              }
          }

            function change(v){   
              dsy.bean_change(v);// Call test prototype
            }

            // Write form data string, 輸出表單腳本代碼
            // dsy, object name
            // varName, 變量名
            function toString(dsy, varName) {
              var str = "";
              for(i = 0; i < dsy.fieldValues.length; i++) {
                  str += "<select id=\"" + dsy.fieldValues[i] + "\" onChange=\"" + varName + ".bean_change(" + (i + 1)
                      + ");\"></select>\r\n";
              }
              str += "<br/>";
              return str;
            }

          // 第一個對象
            var dsy = new Dsy(["s1", "s2", "s3"], ["銷售方名稱", "銷售方聯系人", "聯系電話"]);
            var dsy1 = new Dsy(["s4", "s5", "s6"],  ["最終用戶名稱", "最終用戶聯系人", "聯系電話"]);
            var dsy2 = new Dsy(s = ["s7", "s8", "s9"], ["廠商", "廠商銷售", "聯系電話"]);

          // 填入數據, 重復的代碼
            dsy.add("0", ["單位1", "單位2"]);

            dsy.add("0_0", ["單位1聯系人_1", "單位1聯系人_2"]);
            dsy.add("0_0_0", ["單位1聯系人_1聯系電話"]);
            dsy.add("0_0_1", ["單位1聯系人_2聯系電話"]);

            dsy.add("0_1", ["單位2聯系人_1", "單位2聯系人_2"]);
            dsy.add("0_1_0", ["單位2聯系人_1聯系電話"]);
            dsy.add("0_1_1", ["單位2聯系人_2聯系電話"]);

            dsy1.add("0", ["最終用戶1", "最終用戶2"]);

            dsy1.add("0_0", ["最終用戶1_聯系人1", "最終用戶1_聯系人2"]);
            dsy1.add("0_0_0", ["最終用戶1_聯系人1_電話"]);
            dsy1.add("0_0_1", ["最終用戶1_聯系人2_電話"]);

            dsy1.add("0_1", ["最終用戶2_聯系人1", "最終用戶2_聯系人2"]);
            dsy1.add("0_1_0", ["最終用戶2_聯系人1_電話"]);
            dsy1.add("0_1_1", ["最終用戶2_聯系人2_電話"]);

            dsy2.add("0", ["BEA", "Horizon"]);

            dsy2.add("0_0", ["張學友", "BeanSoft"]);
            dsy2.add("0_0_0", ["1234567890"]);
            dsy2.add("0_0_1", ["beansoft@126.com"]);

            dsy2.add("0_1", ["AAA", "BBB"]);
            dsy2.add("0_1_0", ["AAA_99999"]);
            dsy2.add("0_1_1", ["bbb_88888"]);

            function setup(){  // Initialize the object
              dsy.setup(); //依次調用 setup
              dsy1.setup();
              dsy2.setup();
            }

          function prints1(){
              alert(document.frm.s1.value + " " + document.frm.s2.value + " " + document.frm.s3.value +"\r\n");
          }

          //isNaN()檢查運算結果  http://tech.ccidnet.com/pub/article/c1115_a120997_p1.html

          </SCRIPT>

          </head>
          <body bgcolor="#E0E0E0" onload="setup()">
          多級關聯菜單:
          <form name="frm">

          <!-- 方式1: 手工輸出 HTML 代碼, 便于排版
          <select id="s1" onChange="dsy.bean_change(1);"></select>
          <select id="s2" onChange="dsy.bean_change(2);"></select>
          <select id="s3" onChange="dsy.bean_change(3);"></select>
          <br>
          <br>
          <br>
          <select id="s4" onChange="dsy1.bean_change(1);"></select>
          <select id="s5" onChange="dsy1.bean_change(2);"></select>
          <select id="s6" onChange="dsy1.bean_change(3);"></select>
          <br>
          <br>
          <br>
          <select id="s7" onChange="dsy2.bean_change(1);"></select>
          <select id="s8" onChange="dsy2.bean_change(2);"></select>
          <select id="s9" onChange="dsy2.bean_change(3);"></select>
          -->
          <SCRIPT LANGUAGE="JavaScript">
          <!--
          // 方式2: 腳本輸出表單 HTML 代碼, 代碼和上面注釋掉的類似
          document.write(toString(dsy, "dsy"));
          document.write(toString(dsy1, "dsy1"));
          document.write(toString(dsy2, "dsy2"));
          //-->
          </SCRIPT>

          <input type=button name=b1 value="監測" onclick="prints1()">

          </form>

          </body>
          </html>

          posted on 2007-11-23 01:48 末日風情 閱讀(578) 評論(0)  編輯  收藏 所屬分類: javascript
          <2007年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 靖边县| 宁阳县| 从化市| 咸宁市| 巢湖市| 葵青区| 军事| 新绛县| 沂源县| 淮安市| 吉安市| 松滋市| 大庆市| 盱眙县| 铜鼓县| 延川县| 唐河县| 东海县| 北流市| 九龙坡区| 石狮市| 鹤庆县| 新津县| 加查县| 五原县| 丽江市| 江达县| 托里县| 九台市| 湖北省| 永胜县| 九寨沟县| 错那县| 富源县| 道孚县| 内江市| 巴塘县| 浦城县| 朝阳区| 奎屯市| 称多县|