根据所选值,使用jQuery显示动态下拉列表

时间:2013-10-08 06:55:20

标签: jquery

我正在尝试根据之前的选择显示一个下拉列表。这是行不通的。它为我提供了列出的所有值。 ticket_fields_21114185是我的第一个下拉列表,其值为[桌面,网络浏览器]。 ticket_fields_21108325是我的第二个下拉列表,列出了所有其他值。

 $j(document).ready(function() {  
   var ren
   var dtop = ['windows_7'];
   var webrow= ['all','chrome','ie'];  

   //this builds the dropdown list  
   Buildoptions = {      
     selected: function(value, name){    
       return '<option value="'+value+'" selected="selected">'+name+'</option>';     
     },     
     notselected: function(value, name){    
       return '<option value="'+value+'">'+name+'</option>';  
     },      
     clear: function(){    
       return '<option value=""></option>'; 
     } 
   } 
   //goes through the selected array and builds the options  
   var makeSelection = function(theField, theArray) {      
     for ( x = 0; x < theArray.length; x++ ) {              
     console.log('makeing select ' + theArray)         
     if (x == 0)         
        $j(''+ theField +'').append(Buildoptions.notselected(theArray[x], theArray[x]));              

     } 
   }  

   $j('select#ticket_fields_21114185').change( function(){

     ren=$j('select#ticket_fields_21114185 option:selected').val();

     if(ren=='desktop'){
       makeSelection('select#ticket_fields_21108325',dtop);
     }
     else
       makeSelection('select#ticket_fields_21108325',webrow)
   });
});

1 个答案:

答案 0 :(得分:0)

也许它只不过是你的最后一句话没有括号{} 当选择桌面时,可能会触发两个选择 潜入您的代码,现在仔细看看,如果这不是你的希望呢! :)



编辑:在查看您的代码后,我有更多问题然后回答 为了让事情变得有点轻松,你也可以粘贴你的html(虽然我认为我可以处理2个选择) 如果我理解正确,您的第二个选择应显示一些动态数据,具体取决于第一个选择 我得出以下结论:

  • 你的代码遗漏了一些;每个声明后都在这里和那里。

  • 你也缺乏清除函数的明确功能 在添加新功能之前进行动态选择。

  • 你对阵列的for循环对我来说很奇怪,为什么x + 2而不是+1?看起来代码想要使用数组中的第一个值作为值,第二个值作为名称。但是你的清单只有3个值而不是6个?

您是否可以复制粘贴代码,并且在每次选择更改静态选择后,它是否为动态选择添加值和未定义?

相关问题