$(function(){    $("#ddl1").append("<option value='1'>温州</option><option value='2'>杭州</option><option value='3'>台州</option>");     $("#ddl1").change(function(){
        $("#ddl2").find('option').remove().end();//清空
        if ($("#ddl1").val() == '1')
        $("#ddl2").append("<option value='1'>请选择下级单位</option><option value='2'>平阳</option><option value='3'>鹿城</option><option value='4'>文成</option><option value='5'>瑞安</option>");//从数据库查
        
            
  
         if( $("#ddl1").val() =='2')
        $("#ddl2").append("<option value='1'>请选择下级单位</option><option value='2'>滨江区</option><option value='3'>上城区</option>");//从数据库查
          $("#hf1").val($("#ddl1 option:selected").text());
         
         
         if( $("#ddl1").val() =='3')
         $("#ddl2").append("<option value='1'>---无需选择---</option>")
     })
     $("#ddl2").change(function(){
      $("#hf2").val($("#ddl2 option:selected").text());   })
})代码如上面,是个例子,我要输入的项是很多的,按照$("#ddl1").append("<option value='1'>温州</option><option value='2'>杭州</option><option value='3'>台州</option>");的形式的话,太麻烦了,有没有像数组的形式一样的输入方法呢?还有,if ($("#ddl1").val() == '1') 这句,如果改成(=1或者=2或者=3),怎么写呢?因为如果ddl1的val值=1或者2或者3,下一级的ddl2是同一个。

解决方案 »

  1.   


    var arr = [['1','温州'],['2','杭州'],['3','台州']];
    $(arr).each(function(){
    $("#ddl1").append("<option value='" + $(this).get(0) + "'>" + $(this).get(1) + "</option>");
    });//
    if ($("#ddl1").val() == '1' || $("#ddl1").val() == '2' || $("#ddl1").val() == '3')
      

  2.   

    var arrYJ = [['1','温州'],['2','杭州'],['3','台州']];
    var arrEJ_WZ = [['1','苍南'],['2','平阳'],['3','文成']];
    var arrEJ_HZ = [['1','上城区'],['2','滨江区'],['3','西湖区']];
    var arrEJ_TZ = [['1','椒江'],['2','仙居'],['3','城关']];
    var arrSJ_CN = [['1','龙港'],['2','灵溪'],['3','金乡']];
    function  GetList(arr,ddl)
    {
         $(arr).each(function(){
            $("#" + ddl).append("<option value='" + $(this).get(0) + "'>" + $(this).get(1) + "</option>");
        });}
    $(function(){        GetList(arrYJ,"ddl1");     $("#ddl1").change(function(){
            $("#ddl2").find('option').remove().end();//清空
            if ($("#ddl1").val() == '2')
            GetList(arrEJ_HZ,"ddl2");
            
                
      
             if( $("#ddl1").val() =='3')
                GetList(arrEJ_TZ,"ddl2");
                
              
             
             
             if( $("#ddl1").val() =='1')
             GetList(arrEJ_WZ,"ddl2");
             
             $("#hf1").val($("#ddl1 option:selected").text());
         })
         $("#ddl2").change(function(){
          $("#hf2").val($("#ddl2 option:selected").text());   })
       
    })
    谢谢楼上的兄弟,那三级的级联怎么做呢,现在只到2级级联,我的代码如上。为了做三级级联,我加了如下代码
    $(function(){        GetList(arrSJ,"ddl3");     $("#ddl2").change(function(){
            $("#ddl3").find('option').remove().end();//清空
            if ($("#ddl2").val() == '2')
            GetList(arrSJ_CN,"ddl3");
            
               
             
             $("#hf3").val($("#ddl3 option:selected").text());
         })
    红色的那条怎么改,才能对应var arrEJ_WZ这一条二级的项