Atualizando um combo com base em outro...
Pessoal tô com uma função assim:
function buildPositions( value ){ // Line Charts var Line = new Array() Line[0] = "Abaixo" Line[1] = "Acima" Line[2] = "Centralizado" Line[3] = "Cursor" Line[4] = "Direita" Line[5] = "Esquerda" Line[6] = "Ocultar" // Column Charts var Column = new Array() Column[0] = "Base" Column[1] = "Cursor" Column[2] = "Fora" Column[3] = "Meio" Column[4] = "Ocultar" Column[5] = "Topo" // Stacked Column Charts var SColumn = new Array() SColumn[0] = "Base" SColumn[1] = "Cursor" SColumn[2] = "Meio" SColumn[3] = "Ocultar" SColumn[4] = "Topo" // Floating Column Charts var FColumn = new Array() FColumn[0] = "Cursor" FColumn[1] = "Dentro" FColumn[2] = "Fora" FColumn[3] = "Ocultar" // 3D Column Charts var Column3D = new Array() Column3D[0] = "Cursor" Column3D[1] = "Meio" Column3D[2] = "Ocultar" Column3D[3] = "Sobre" // Stacked 3D Column Charts var SColumn3D = new Array() SColumn3D[0] = "Cursor" SColumn3D[1] = "Meio" SColumn3D[2] = "Ocultar" // Floating 3D Column Charts var FColumns3D = new Array() FColumns3D[0] = "Cursor" FColumns3D[1] = "Meio" FColumns3D[2] = "Ocultar" FColumns3D[3] = "Sobre" // Pie Charts var Pie = new Array() Pie[0] = "Cursor" Pie[1] = "Dentro" Pie[2] = "Fora" Pie[3] = "Ocultar" // 3D Pie Charts var Pie3D = new Array() Pie3D[0] = "Cursor" Pie3D[1] = "Dentro" Pie3D[2] = "Fora" Pie3D[3] = "Ocultar" // Bar Chart var Bar = new Array() Bar[0] = "Centralizado" Bar[1] = "Cursor" Bar[2] = "Direita" Bar[3] = "Esquerda" Bar[4] = "Fora" Bar[5] = "Ocultar" // Stacked Bar Charts var SBars = new Array() SBars[0] = "Centralizado" SBars[1] = "Cursor" SBars[2] = "Direita" SBars[3] = "Esquerda" SBars[4] = "Ocultar" // Floating Bar Charts var FBars = new Array() FBars[0] = "Cursor" FBars[1] = "Dentro" FBars[2] = "Fora" FBars[3] = "Ocultar" // Area Charts var Area = new Array() Area[0] = "Abaixo" Area[1] = "Acima" Area[2] = "Centralizado" Area[3] = "Cursor" Area[4] = "Direita" Area[5] = "Esquerda" Area[6] = "Ocultar" // Stacked Area Charts var SArea = new Array() SArea[0] = "Abaixo" SArea[1] = "Acima" SArea[2] = "Centralizado" SArea[3] = "Cursor" SArea[4] = "Direita" SArea[5] = "Esquerda" SArea[6] = "Ocultar" // Candlestick Charts var Candlestick = new Array() Candlestick[0] = "Cursor" Candlestick[1] = "Ocultar" // Scatter Charts var Scatter = new Array() Scatter[0] = "Abaixo" Scatter[1] = "Acima" Scatter[2] = "Centralizado" Scatter[3] = "Cursor" Scatter[4] = "Direita" Scatter[5] = "Esquerda" Scatter[6] = "Ocultar" // Polar Charts var Polar = new Array() Polar[0] = "Abaixo" Polar[1] = "Acima" Polar[2] = "Centralizado" Polar[3] = "Cursor" Polar[4] = "Direita" Polar[5] = "Esquerda" Polar[6] = "Ocultar" switch( value ) { case "none": var option = document.createElement( "option" ); option.setAttribute( "value", "none" ); var label = document.createTextNode( "Selecione um Padrão" ); option.appendChild( label ); document.getElementById( "positions" ).appendChild( option ); break; /* Loop Options for Line Charts */ case "line": for( item in Line ) { var option = document.createElement( "option" ); option.setAttribute( "value", Line[item] ); var label = document.createTextNode( Line[item] ); option.appendChild( label ); document.getElementById( "positions" ).appendChild( option ); } break; /* Loop Options for Column Charts */ case "column": for( item in Column ) { var option = document.createElement( "option" ); option.setAttribute( "value", Column[item] ); var label = document.createTextNode( Column[item] ); option.appendChild( label ); document.getElementById( "positions" ).appendChild( option ); } break; default: var option = document.createElement( "option" ); option.setAttribute( "value", "none" ); var label = document.createTextNode( "Selecione um Padrão" ); option.appendChild( label ); document.getElementById( "positions" ).appendChild( option ); break; }}
Vários arrays e um switch que monta um combo com os elementos determinados, um array para cada caso.
O combo que será montado tem apenas:
<select id="positions" class="select"><option value="none" selected>Selecione uma Posição</option></select>
E o combo "pai", que tem os values no qual o switch da função se baseia está asim:
<select name="type" id="type" class="select" onchange="buildPositions( this.value );"><option value="none" selected>Selecione um Formato</option><option value="line">Linhas</option><option value="column">Colunas</option><option value="stacked_column">Colunas Empilhadas</option><option value="floating column">Colunas Flutuantes</option><option value="3d_column">Colunas 3D</option><option value="stacked_3d_column">Colunas 3D Empilhadas</option><option value="parallel_3d_column">Colunas 3D Paralelas</option><option value="pie">Pizza</option><option value="3d_pie">Pizza 3D</option><option value="bar">Barras</option><option value="stacked_bar">Barras Empilhadas</option><option value="floating_bar">Barras Flutuantes</option><option value="area">Área</option><option value="stacked_area">Área Empilhadas</option><option value="candlestick">Degraus</option><option value="scatter">Linhas e Pontos Sobrepostos</option><option value="polar">Polar</option></select>
Bom, expus todos os dados, agora o problema :P
É um único errinho bobo, mas crucial.
Quando carrego a página pela primeira vez, a ação funciona de boa. Só que se eu quiser fazer fazer um segundo teste sem carregar a página uma segunda vez, os OPTIONS do combom gerado não são substituído, eles são acrescidos a cada case do switch.
É como se a função ignorasse os comnados break que pus e vai só acrescendo.
Poderiam me dizer como faço para corrigir?
-------
EDIT
-------
Agora que notei, essa minha função, alé de tudo, não funciona no IEca.
[]'s
Discussão (1)
Carregando comentários...