• js入门·表单元素(select下拉列表)制作二级联动菜单和网站导航


    对于脚本来说,最复杂的表单元素对象就是select了,他是一个复合对象,包含OPTION对象数组的对象

    演示一:导航,这个多见于网站友情链接

    演示二:地区二级无刷新联动菜单(其实这个例题也适用了关联数组,只是说被关联的数组是在一级数组的内部,如果有不明白,就看下 http://www.cnblogs.com/thcjp/archive/2006/08/04/467761.html 这篇,专门介绍数组的文字)

    注意,我在二级菜单里做了点小动作,呵呵!!

    <%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" ontent="text/html; charset=gb2312" />
    <title>表单元素(select下拉列表)制作二级联动菜单和网站导航</title>
    <script language="javascript">
    //下面这个函数是演示一的处理代码
    function al(x){
    var list=document.Url.select1
    //将selsect1对象赋给变量list,方便以后引用,虽然这里只引用一次,但是作为一个好习惯,我们还是有必要坚持的
        location=list.options[x].value//把页面转向select的value值
    }

    //下面函数是演示二,联动菜单的处理代码
    function makeshi(x){
        
    var form2=document.diqu.one.options.length;//这句解释同上
        var diqul=new Array(form2)//新建一个数组,项数为第一个下拉列表的项数
        for(i=0;i<form2;i++)//循环第一个下拉列表的项数那么多次
            diqul[i]=new Array();//子循环
            //下面是给每个循环赋值
                diqul[0][0]=new Option("绵阳","绵阳");
                    diqul[
    0][1]=new Option("成都","成都");
                    diqul[
    0][2]=new Option("广元","广元");
                diqul[
    1][0]=new Option("南京","南京");
                    diqul[
    1][1]=new Option("苏州","苏州");
                    diqul[
    1][2]=new Option("常州","常州");
                diqul[
    2][0]=new Option("南宁","南宁");
                    diqul[
    2][1]=new Option("柳州","柳州");
                    diqul[
    2][2]=new Option("北海","北海");
                diqul[
    3][0]=new Option("杭州","杭州");
                    diqul[
    3][1]=new Option("温州","温州");
                    diqul[
    3][2]=new Option("义乌","义乌");
        
    var shi=document.diqu.shi;//方便引用
        for(m=shi.options.length-1;m>0;m--)
        
    //这个要看清楚,因为要重新填充下拉列表的话必须先清除里面原有的项,清除和增加当然是有区别的了,所以用递减
            shi.options[m]=null;//将该项设置为空,也就等于清除了
        for(j=0;j<diqul[x].length;j++){//这个循环是填充下拉列表
            shi.options[j]=new Option(diqul[x][j].text,diqul[x][j].value)
            
    //注意上面这据,列表的当前项等于 新项(数组对象的x,j项的文本为文本,)
        }

        shi.options[
    0].selected=true;//设置被选中的初始值
    }

    </script>
    </head>
    <body>
    <p>对于脚本来说,最复杂的表单元素对象就是select了,他是一个复合对象,包含OPTION对象数组的对象</p>
    <p><strong>演示一:导航,这个多见于网站友情链接</strong></p>
    <form id="form1" name="Url">
      
    <select name="select1" onchange="al(options.selectedIndex)">
        
    <option value="#">请选择您要去的网站</option>
        
    <option value="http://thcjp.cnblogs.com">天轰穿系列教程</option>
        
    <option value="http://www.cnblogs.com">博客园 </option>
        
    <option value="http://www.csdn.net">CSDN</option>
      
    </select>
    </form>
    <p><strong>演示二:地区二级无刷新联动菜单</strong>(其实这个例题也适用了关联数组,只是说被关联的数组是在一级数组的内部,如果有不明白,就看下 <href="http://www.cnblogs.com/thcjp/archive/2006/08/04/467761.html">http://www.cnblogs.com/thcjp/archive/2006/08/04/467761.html</a> 这篇,专门介绍数组的文字)</p>
    <form id="form2" name="diqu" method="post" action="">
      
    <select name="one" size="1" onchange="makeshi(options.selectedIndex)">
        
    <option value="0">四川</option>
        
    <option value="1">江苏</option>
        
    <option value="2">广西</option>
        
    <option value="3">浙江</option>
      
    </select>
      
    <select name="shi">
        
    <option value="绵阳">绵阳</option>
        
    <option value="成都">成都</option>
        
    <option value="德阳">德阳</option>
        
    <option value="广元">广元</option>
        
    <option value="南充">南充</option>
      
    </select>
    </form>
    </body>
    </html>
  • 相关阅读:
    PAT甲题题解1099. Build A Binary Search Tree (30)-二叉树遍历
    PAT甲题题解1098. Insertion or Heap Sort (25)-(插入排序和堆排序)
    PAT甲级题解-1097. Deduplication on a Linked List (25)-链表的删除操作
    字典树trie的学习与练习题
    POJ 1273 Drainage Ditches(网络流dinic算法模板)
    单元最短路径算法模板汇总(Dijkstra, BF,SPFA),附链式前向星模板
    Hungary(匈牙利算法)——二分图最大匹配
    LCIS 最长公共上升子序列
    POJ 1151 Atlantis(经典的线段树扫描线,求矩阵面积并)
    Codeforces 494D Upgrading Array
  • 原文地址:https://www.cnblogs.com/thcjp/p/473054.html
Copyright © 2020-2023  润新知