我正在尝试根据之前的选择显示一个下拉列表。这是行不通的。它为我提供了列出的所有值。 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)
});
});
答案 0 :(得分:0)
也许它只不过是你的最后一句话没有括号{} 当选择桌面时,可能会触发两个选择 潜入您的代码,现在仔细看看,如果这不是你的希望呢! :)
编辑:在查看您的代码后,我有更多问题然后回答
为了让事情变得有点轻松,你也可以粘贴你的html(虽然我认为我可以处理2个选择)
如果我理解正确,您的第二个选择应显示一些动态数据,具体取决于第一个选择
我得出以下结论:
你的代码遗漏了一些;每个声明后都在这里和那里。
你也缺乏清除函数的明确功能
在添加新功能之前进行动态选择。
您是否可以复制粘贴代码,并且在每次选择更改静态选择后,它是否为动态选择添加值和未定义?