二级联动---Linkage

简介: 效果    主动select影响从动select。        创建Linkage函数    function Linkage(o1,o2){        //接受传过来的ID        this.

效果
    主动select影响从动select。
   
    创建Linkage函数
    function Linkage(o1,o2){
        //接受传过来的ID
        this.obj1 = document.getElementById(o1);
        this.obj2 = document.getElementById(o2);

        //定义绑定select数据的值
        var obj1Data = "1|2|3".split("|");
        var obj2Data = ["--无--".split("|"),"a1|a2|a3".split("|"),"b1".split("|"),"c1|c2".split("|")];

        //创建元素
        var opt = document.createElement("option");
        opt.innerHTML = opt.value = "--无--";
        //将创建的元素添加到select中
        this.obj1.appendChild(opt);

        for(var i=0;i<obj1Data.length;i++){
            var opt = document.createElement("option");
            opt.innerHTML = opt.value = obj1Data[i];
            this.obj1.appendChild(opt);
        }

        //设置select默认选择第一个
        this.obj1.selectIndex = 0;
 
        //同理
        this.obj2.length = 0;
        var opt = document.createElement("option");
        opt.innerHTML = opt.value = "--无--";
        this.obj2.appendChild(opt);
        this.obj2.selectedIndex = 0;

        //将this复制给_this
        var _this = this;
        
        //为select绑定onchange事件
       this.obj1.onchange = function () {
           var tmp = obj2Data[this.selectedIndex];
           _this.obj2.length = 0;
           for (var i = 0; i < tmp.length; i++) {
                var opt = document.createElement("option");
                opt.innerHTML = opt.value = tmp[i];
                _this.obj2.appendChild(opt);
            }
            if (tmp.length != 1) {
                 //当select的选项长度超过一个时为其添加option"其他"
                 var opt = document.createElement("option");
                 opt.innerHTML = opt.value = "其它";
                 _this.obj2.appendChild(opt);
             }
                    _this.obj2.selectedIndex = 0;
                }
            }
            this.init();

    }
源代码:

View Code
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <title>二级联动---Linkage---www.cnblogs.com/kuikui</title>
5 <script type="text/javascript">
6 function Linkage(o1, o2) {
7 this.obj1 = document.getElementById(o1);
8 this.obj2 = document.getElementById(o2);
9
10 var obj1Data = "1|2|3".split("|");
11 var obj2Data = ["--无--".split("|"), "a1|a2|a3".split("|"), "b1".split("|"), "c1|c2".split("|")];
12
13 this.init = function () {
14 this.obj1.length = 0;
15 var opt = document.createElement("option");
16 opt.innerHTML = opt.value = "--无--";
17 this.obj1.appendChild(opt);
18 for (var i = 0; i < obj1Data.length; i++) {
19 var opt = document.createElement("option");
20 opt.innerHTML = opt.value = obj1Data[i];
21 this.obj1.appendChild(opt);
22 }
23 this.obj1.selectedIndex = 0;
24 this.obj2.length = 0;
25 var opt = document.createElement("option");
26 opt.innerHTML = opt.value = "--无--";
27 this.obj2.appendChild(opt);
28 this.obj2.selectedIndex = 0;
29 var _this = this;
30 this.obj1.onchange = function () {
31 var tmp = obj2Data[this.selectedIndex];
32 _this.obj2.length = 0;
33 for (var i = 0; i < tmp.length; i++) {
34 var opt = document.createElement("option");
35 opt.innerHTML = opt.value = tmp[i];
36 _this.obj2.appendChild(opt);
37 }
38 if (tmp.length != 1) {
39 var opt = document.createElement("option");
40 opt.innerHTML = opt.value = "其它";
41 _this.obj2.appendChild(opt);
42 }
43 _this.obj2.selectedIndex = 0;
44 }
45 }
46 this.init();
47 }
48 </script>
49 </head>
50 <body>
51 <select id="test1">
52 </select>
53 <select id="test2">
54 </select>
55 <script type="text/javascript">
56 Linkage("test1", "test2");
57 </script>
58 </body>
59 </html>





目录
相关文章
|
1月前
|
前端开发
Web前端---表格和表单
Web前端---表格和表单
27 1
element中使用走马灯效果el-carousel点击按钮切换第几页demo效果示例(整理)
element中使用走马灯效果el-carousel点击按钮切换第几页demo效果示例(整理)
jq简单隔行变色demo示例(整理)
jq简单隔行变色demo示例(整理)
|
7月前
|
JavaScript
js简单全选及反选demo效果示例(整理)
js简单全选及反选demo效果示例(整理)
|
10月前
|
JavaScript
JQuery小案例----实现qq表情选择
JQuery小案例----实现qq表情选择
|
JavaScript 前端开发 Java
jquery实现动态表格项目(表格增加删除/全选/表格变色特效等功能)(附源码+javaWEB开发如果需要可以直接使用)
jquery实现动态表格项目(表格增加删除/全选/表格变色特效) 🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝
266 0
jquery实现动态表格项目(表格增加删除/全选/表格变色特效等功能)(附源码+javaWEB开发如果需要可以直接使用)
|
前端开发 CDN
jq超级简易选项卡案例
jq超级简易选项卡案例
196 0
|
Web App开发 JavaScript 前端开发
完美的alert美化
默认的alert总是在好看的样式下显得格格不入,所以在网上搜寻良久,终于找到了一个完美的美化方案。体验请点我 一、引入js和css文件 二、js调用替代alert   一、引入js和css文件 1、直接在head引入 2、下载之后再引入,下载链接在文末。
2967 0