Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Select Dinâmico


Levi_gns

Pergunta

Boas,

Gostaria de fazer um select dinâmico de forma que ao selecionar uma opção em "anofabveiculo", por exemplo “2008”, o outro select "anomodveiculo" carregaria automaticamente os anos “2008” e “2009” (o mesmo valor e 1 a mais).

Alguém poderia dar uma força?

Obrigado.

<select name="anofabveiculo" id="anofabveiculo">
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
.
.
.
</select>


<select name="anomodveiculo" id="anomodveiculo">
</select>

Editado por Jonathan Queiroz
Adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Opa! Primeiramente gostaria de te agradecer por ter feito essa pergunta. Eu estava fazendo algumas coisas chatas aqui, tava um verdadeiro tedio. Ai quando vi sua pergunta, fiquei animado em bolar isso... A funcao a principio é bem facil de se fazer... :(

então eu decidi completa-la um pouco mais so para ter mais tempo de diversao... heheheheheh

Aqui segue o codigo:

<script language="JavaScript">

function atualizaAnoModVeiculo(valorAno, amv, qtd, ordem) {
    function removeAllChilds(elm) {//remove todos os filhos de um elemento
        while(elm.firstChild)
            elm.removeChild(elm.firstChild);
    }//fiz esta funcao para limpar o select antes de fazer a proxima insercao.
    
    valorAno = typeof valorAno=="string"?parseInt(valorAno):valorAno;//Se o parametro vier como string, passo pra numero.
    if(typeof amv=="string") var anomodveiculo = document.getElementById(amv); else var anomodveiculo=amv;//AnoModVeiculo (amv)
    qtd = typeof qtd=="string"?parseInt(qtd):qtd;
    ordem = ordem==false?false:true;//isso é para definir um valor padrão para o parametro ordem.Se nada for digitado, ele valera true
    
    removeAllChilds(anomodveiculo);//remove todos os filhos do select anomodveiculo para inserir os novos
    if(ordem) {var i=0; var j=0} else {i=-qtd; qtd=0; var j=-1}//meio dificil de explicar, mas chamo isso de espelhamento de valor.
    //com esse if, eu posso mudar a ordem em que serao mostrados os valores no select literalmente expelhando os valores.Ex: 5 sera -5
    
    for(; i<qtd; i++) {
        var ano = valorAno+Math.abs(i)+j;//aqui eu faco o incrementos de i para formar os anos seguintes.
        //O metodo abs() da classe Math, e para mostrar o modulo de um numero, ou seja, o numero sem o sinal. Ex: Math.abs(-1) sera 1.
        //Se o parametro ordem for true, j valera 0 senao j valera -1; Esse j, eu chamo de ajuste para espelhamento.
        var option = document.createElement("option");//daqui ate o final, so a parte de criar o elemento, setar atributos e por no outro select.
        option.setAttribute("value",ano);
        option.text = ano;
        anomodveiculo.appendChild(option);
    }
}
</script>
<!-- 
-- Aqui eu utilizei o this.value que vai passar o atributo value do item selecionado.
-- Se tu quiser passar o text(texto que esta entre as tags <option></option>, use o seguinte:
-- atualizaAnoModVeiculo(this.options[this.selectedIndex].text)
 -->
<select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, 'anomodveiculo', 2, true)">
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
<option value="2005">2005</option>
</select>
Bom, eu comentei algumas coisas no codigo, e falarei um pouco da logica dessa funcao daqui a pouco... Vou agora falar sobre como usar a funcao. Aqui segue um protótipo dela: void atualizaAnoModVeiculo(<number/string>,<HTMLelement/string>,<number/string>,[boolean]); não sei se todos estao acostumados a ver protótipos de funcoes assim, e ainda não sei escrever dentro das normas um, mas basicamente, isso indica os parametros que a funcao aceita... Os que estao dentro de <> é porque são obrigatorios e os que estao entre [] são opcionais. E a barra(/) indica que pode receber qualquer um dos dois tipos de dados. Dentro dos <> o que vem primeiro, é o que a funcao da preferencia para uma melhor performance. por exemplo:
atualizaAnoModVeiculo(2009, document.getElementById('umElemento'), 2, true)
Esse é um exemplo da funcao com otimizacao maxima, ou seja, recebendo parametros dos tipos do exemplo, ela executará mais rapido do que colocar como string... Mas esse mais rapido, é questao de milesimos de milesimos de segundo. Mas a funcao não retornaria erro se voce escrevece assim:
atualizaAnoModVeiculo("2009", "umElemento", "2")

Reparem que nesse ultimo exemplo, eu omiti o ultimo parametro, isso porque a funcao aceita que seja omitido o ultimo parametro. O ultimo parametro é por padrão true. então escrever true ou omitilo, da no mesmo.

Agora vamos falar um pouco sobre o que a funcao faz:

Bom, ela recebe o primeiro parametro referente ao ano que foi selecionado no primeiro select... No codigo que eu mostrei a funcao, esta como this.value, isso significa que ela vai pegar o valor do atributo value do select... Isso significa que o atributo sera passado como string, mas como falei, a funcao aceita string tmb! ^^

Como segundo parametro, ela recebe o nome ou referencia ao campo select que tu quer que seja mostrado as datas. Da pra tanto por como getElementById como string(proprio nome do select).

No terceiro parametro, voce passa o numero de datas que tu quer no outro select... No exemplo que voce deu, voce pediu apenas a data selecionada e a posterior. Isso significa que são 2 datas então tu pode colocar aquele valor como 2, mas aconselho a fazerdes testes para entender melhor esse terceiro parametro.

O quarto parametro, é uma coisa terrivelmente legal! <_<

Ele decide se as datas serao colocadas na ordem crescente ou decrescente. Se tu usar a data 2009, com o valor 2 e a ultima propriedade como true, a saida sera:

2009

2010

Se tu usar a data 2009 o valor 2 e a propriedade false, sera mostrado assim:

2010

2009

Acho que deu pra intender como funciona, né? Eu estou meio atrasado agora, então quando eu chegar em casa, explico como funciona o algoritmo pra essa funcao.

T+

Editado por Danilo Moraes
Link para o comentário
Compartilhar em outros sites

  • 0

<script language="JavaScript">

function atualizaAnoModVeiculo(valorAno, amv, qtd, ordem) {
    function removeAllChilds(elm) {
        while(elm.firstChild)
            elm.removeChild(elm.firstChild);
    }
    
    valorAno = typeof valorAno=="string"?parseInt(valorAno):valorAno;
    if(typeof amv=="string") var anomodveiculo = document.getElementById(amv); else var anomodveiculo=amv;
    qtd = typeof qtd=="string"?parseInt(qtd):qtd;
    ordem = ordem==false?false:true;
    
    removeAllChilds(anomodveiculo);
    if(ordem) {var i=0; var j=0} else {i=-qtd; qtd=0; var j=-1}
    
    for(; i<qtd; i++) {
        var ano = valorAno+Math.abs(i)+j;
        
        var option = document.createElement("option");
        option.setAttribute("value",ano);
        option.text = ano;
        anomodveiculo.appendChild(option);
    }
}
</script>
<!--
-- Aqui eu utilizei o this.value que vai passar o atributo value do item selecionado.
-- Se tu quiser passar o text(texto que esta entre as tags <option></option>, use o seguinte:
-- atualizaAnoModVeiculo(this.options[this.selectedIndex].text)
-->
<select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, 'anomodveiculo', 2, true)">
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
<option value="2005">2005</option>
</select>

Acho que a unica parte que precisaria comentar sobre como funciona, seria essa:

if(ordem) {var i=0; var j=0} else {i=-qtd; qtd=0; var j=-1}

Eu acho ate que nem vou falar muito, se não intendeu alguma coisa, so perguntar que explico melhor. Eu teria duas maneiras de se fazer essa funcao: Ou eu fazia um teste de condicao, se o ultimo parametro for true, o contador "i" do loop vai de 0 ate a quantidade maxima e se o parametro for false, i seria do tamanho de qtd e iria diminuindo ate chegar a zero. Como eu quis poupar codigo, fiz apenas um for que sempre vai incrementando. Eu apenas mudaria o sinal de i para negativo e de qtd para zero... já o j, é o seguinte:

Quando o i vai de 0 ate qtd, ele faz assim por exemplo:

2009->2009+0 -> 2009 (i=0)

2009+1 -> 2010 (i=1)

E i não vai chegar a 2 porque a condicao do for di que so vai continuar se i for menor que qtd, e adotamos nesse exemplo que qtd vale 2...

já no inverso(quando o ultimo parametro é false) i passa a ser o valor negativo de qtd e qtd passa a ser 0.

Agora vejam:

2009 -> 2009+2 -> 2011 (i=-2 Math.abs(i) = i sem sinal. Se i valer -2, passara a valer 2)

2009+1 -> 2010 (i=-1 com abs fica 1)

Pronto, mostrei as duas linhas, so que não acabou mostrando o 2009 que nos queriamos. Pra ficar perfeito, teriamos que ter um +(-1) do lado de cada ano, somente quando o ultimo parametro for false. Por isso eu fiz a variavel "j", sempre que for falso, ela valera -1 senao valera 0. Ai ficaria assim:

Parametro verdadeiro:

2009->2009+0+0 -> 2009 (i=0)

2009+1+0 -> 2010 (i=1)

Parametro falso:

2009 -> 2009+2+(-1) -> 2010 (i=-2 Math.abs(i) = i sem sinal. Se i valer -2, passara a valer 2)

2009+1+(-1) -> 2009 (i=-1 com abs fica 1)

Bem simples ^^ :rolleyes:

Duvidas so perguntar.

T+

Link para o comentário
Compartilhar em outros sites

  • 0

Danilo, em primeiro lugar MUITO OBRIGADO pelo o que você fez, imaginei que pudesse ser mais simples código, ou que receberia alguma dica de como desenvolvê-lo, mas você fez tudo. Valeu mesmo.

Buenos... a lógica eu entendi, imaginei algo assim, mas o meu problema realmente é a falta de conhecimento em JavaScript que é muito básico.

Porém, ainda não está funcionando aqui para mim. Ou melhor, funcionou uma parte: quando seleciono um item em "anofabveiculo", não aparece nenhum item para selecionar no "anomodveiculo", mas aparecem 2 options vazios que seriam para os dois anos que deveriam aparecer.

Pelo que você comentou no código é necessário "criar o elemento, setar atributos e por no outro select". Desculpe minha ignorância, mas preciso me aproveitar da sua boa vontade... Será que não está faltando algo relacionado a isso?

Abraços.

Editado por Levi_gns
Link para o comentário
Compartilhar em outros sites

  • 0

Opa, beleza cara? Me deculpe a demora, mas tive meio ocupado durante essa semana, e não pude dar muita atencao a sua funcao. Foi so hoje que consegui pega-la pra dar uma olhada. Eu estava aprimorando um pouco ela, porque a principio pensei que tu tivece se esquecido de referenciar o outro select ou coisa assim, então acabei deichando ela mais robusta com relacao aos parametros que ela pode receber.

Ai me deu na telha de instalar o IEca aqui. Eu uso linux, porque realmente prefiro, os desenvolvedores todos deveriam usar linux!! Mas o meu pc aqui (notebook) ta uma naba... Drive de CR-ROM não funciona, windows que tava instalado nele tmb não funciona mais, e o linux já ta indo pro beleleu tmb... Tudo aqui no meu computador se arrasta :( Mas decedi instalar/emular o IEca6.0 pra ver se a funcao que eu fiz funcionava nele. Foi com extrema dificuldade que eu debuguei o script para o IEca porque de 2 em 2min o pc travava :(.

Bom, de inicio foi facil achar o problema: O IE não estava aceitando a seguinte expressao: option.text = "TextoParaOption". Tentei de diversas maneiras inserir a propriedade text para os options no IE e ainda assim ele não funcionava, acontecia bem o que tu tinha dito: ficava apenas os espacos em branco. Isso significava que os options estavam sendo criados, mas não estava sendo inserido o texto. Eu ate conseguia inserir um valor para o option com a expressao: option.setAttribute("value","valor"), mas o mardito text não fungava...

então comecei a procurar por tutoriais na net sobre inserir a propriedade text em options no IE, e todos os foruns que achei essas perguntas, eles não tinham sido respondidos :(

Foi ai que virei o boné pra tras (by Falcao :P ) e comecei a fazer o que mais gosto: debugar e achar a solucao.

Comecando, eu testei esse script que é a maneira que eu sempre utilizei pra criar options dentro de um select:

<script type="text/javascript">
function teste(text){
        var select=document.getElementById('anos');
        var option=document.createElement("option");
        option.text = text;
        select.appendChild(option);
    }
</script>
<select id="anos">
<option value="" selected="selected">Escolha...</option>
<option value="2010">2010a</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
</select>

<input type="button" onclick="teste('teste')" />
Bom, é uma funcao bem simples, que quando chamada (quando clicar o botao) vai "pegar" o select anos, criar um elemento option, inserir o texto passado como parametro para a funcao e inserir o option no select. No FF funciona perfeitamente, mas no IEca, a propriedade text parece nula :( Ai fiquei me perguntando, como poderei inserila de outra maneira? A funcao setAttribute funciona apenas para atributos de um elemento, e tecnicamente, text não é um atributo, e sim o "conteudo" do elemento. Tentei tmb o innerHTML dessa maneira: option.innerHTML = text, mas tmb não deu (dessa vez nem no FF não funcionou). então eu estava navegando nuns sites sobre selects, e vi que algumas pessoas criavam os options apenas instanciando-os como objetos da seguinte maneira:
var select = new Option("Text","Value");
então eu fui tentar utilizar isso no IEca, e funcionou!! hehehehe Se alguém souber me dizer com exatidao os motivos de o porque o IE não aceitou nem innerHTML e nem a propriedade text, ficarei bem grato mas o importante e que achei uma solucao para resolver este problema. Ai depois que descobri a maneira de se inserir o Text nos options, a parte de enquadra-lo no script e a mais facil ^^ Veja como ficaria:
//script original:
var option = document.createElement("option");
        option.setAttribute("value",ano);
        option.text = ano;
        anomodveiculo.appendChild(option);

//script atualizado:
anomodveiculo.options[anomodveiculo.options.length] = new Option(ano, ano);
So para ficar mais facil de intender, anomodveiculo é o select. options é uma propriedade, que é um array contendo todos os options de um select. E a propriedade length, sempre me retorna a posicao no array do ultimo elemento +1. Isso porque o array comeca no 0 e o length comeca no 1. então se eu selecionar o option usando length, sempre vai me retornar uma posicao abaixo da ultima. então eu apenas selecionei o length deste select usando: anomodveiculo.options.length. No final, instanciei o objeto passando para text e value o mesmo valor. No final o script completo fica assim:
<script language="JavaScript">

function atualizaAnoModVeiculo(valorAno, elemento, qtd, ordem) {
    if(typeof valorAno=="string" && valorAno!="")//checa se a opcao escolhida não é a opcao padrão, ou seha, a opcao sem valor
        valorAno=parseInt(valorAno);
    else if(valorAno=="") return;
    
    var dest=document.body;
    if(typeof elemento=="string") {
        if(elemento.charAt(0)=="#") {
            dest=document.getElementById(elemento.substring(1,elemento.length));
            elemento=undefined;
        } else {
            var anomodveiculo = document.getElementById(elemento); 
        }
    } else if(typeof elemento=="object") var anomodveiculo=elemento;
    
     if(elemento==undefined) {
        var id="anomodveiculo";//id do elemento criado pela funcao
        var select = document.getElementById(id);
        
        if(select==undefined) {//vai passar por esta funcao apenas na primeira vez
            select = document.createElement("select");
            select.setAttribute("id",id);
            select.setAttribute("name",id);
            dest.appendChild(select);
        }
        
        var anomodveiculo = select;
    }    
    
    qtd = typeof qtd=="string"?parseInt(qtd):qtd;
    ordem = ordem==false?false:true;

    function removeAllChilds(elm) {
        while(elm.firstChild)
            elm.removeChild(elm.firstChild);
    }
    removeAllChilds(anomodveiculo);
    
    if(ordem) {var i=0; var j=0} else {i=-qtd; qtd=0; var j=-1}
    for(; i<qtd; i++) {
        var ano = valorAno+Math.abs(i)+j;
        
        anomodveiculo.options[anomodveiculo.options.length] = new Option(ano, ano);
        /*var option = document.createElement("option");
        option.setAttribute("value",ano);
        option.text = ano;
        anomodveiculo.appendChild(option);*///essa parte aqui não funciona no IEca...
    }
}
</script>

<select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, 'anomodveiculo', 2, true)">
<option value="" selected="selected">Escolha...</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
<option value="2005">2005</option>
</select>

<select id="anomodveiculo"></select>
Bom, agora vem a parte menos ruim ^_^ Explicar as novas funcionalidades desta funcao. Eu modifiquei ela porque a principio achei que tinha ficado dificil de usa-la, então adicionei algumas coisas, outras eu tirei e mechi nela pra que tivesse uma melhor estrutura. Agora ela esta mais "rapida", ou seja, carrega variaveis e outros valores apenas quando necessario, acredito que esteja bem otimizada ^^. As novas funcionalidades que adicionei, alem do proprio codigo da funcao que esta mais estruturado, é o segundo parametro da funcao, a referencia ao elemento. Na versao anterior, você tinha que ter um elemento select já criado na pagina. Na versao atual, você não precisa te-lo, a funcao cria ele pra você se ele não estiver ali... So lembrando o prototipo da funcao: void atualizaAnoModVeiculo(<number/string>,<HTMLelement/string>,<number/string>,[boolean]); então, ali no segundo ele agora aceita referencia ao elemento onde você quer criar o select, ao proprio body, referencia como objeto mesmo, ou como string/id. Vou dar alguns exemplos:
<select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, 'anomodveiculo', 2, true)">
<option value="" selected="selected">Escolha...</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
<option value="2005">2005</option>
</select>

<select id="anomodveiculo"></select>
Esse aqui e o normal, igual da outra funcao onde tu coloca uma string, ou ate um getElementById para passar a propria referencia ao objeto. Olha esse outro aqui:
<select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, '#aqui', 2, true)">
<option value="" selected="selected">Escolha...</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
<option value="2005">2005</option>
</select>
<div id="aqui"></div>
Repare que se voce não tiver criado o select, você tem que ao menos dizer aonde você quer que ele seja criado. Se voce quer que ele seja criado dentro de um div por exemplo, basta apenas criar o div, e dar um atributo para ele. E para dizer para a funcao que tu quer criar dentro daquele div, so precisa digitar um "#" (tralha) na frente do nome, que ai sera criado o select ali... No exemplo que passei, um select sera criado dentro do div: "aqui". E a ultima opcao, não menos importante ^_^ :
<select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, undefined, 2, true)">
<option value="" selected="selected">Escolha...</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
<option value="2005">2005</option>
</select>

Voce não precisa setar nada, apenas escreva undefined (sem aspas) no local, que o select sera criado depois de todos os elementos html da pagina. Se voce quer apenas deichar os selects sozinhos na pagina sem maisn nenhum elemento, essa é a melhor propriedade. Mas se quiser colocar de maneira organizada no local que tu quer determinar numa pagina, ai e melhor usar o # ou referenciar um select já criado.

Nossa, eu sempre quando comeco me empolgo, né? :(

Desculpa esse texto gigante aqui, mas depois do trabalho que tive pra faze a funcao, quero que você fique sabendo de todos os detalhes!! uashusadhuasdhudsah

T+

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, tentei ler e entender tudo que foi postado, porem ficou bastante complicado pra mim...

Creio que o que eu preciso descobrir é bem semelhante

tenho dois selects que devem ser relacionados

Especie: <?
        $buscaEspecie = odbc_exec($con,"SELECT * FROM HOSPVET.ESPECIE");
     echo "<select name='anm_especie' onchange=''>";
              while ($resultadoEspecie = odbc_fetch_array($buscaEspecie))
              {
                                $especieCodigo = $resultadoEspecie[ESP_CODIGO];
                if($resultadoEspecie[ESP_CODIGO] == $anm_especie )
                   echo "<OPTION VALUE=$resultadoEspecie[ESP_CODIGO] selected >".$resultadoEspecie[ESP_NOME]."</OPTION>";
                else
                   echo "<OPTION VALUE='$resultadoEspecie[ESP_CODIGO]'>".$resultadoEspecie[ESP_NOME]."</OPTION>";

              }
            echo "</SELECT>";
    ?>
    <br />


Ra&ccedil;a:    <? $buscaRaca = odbc_exec($con,"SELECT * FROM RACA WHERE ESP_CODIGO = $especieCodigo");

                echo "<select name='anm_raca'>";

                  while ($resultadoRaca = odbc_fetch_array($buscaRaca))
                  {
                    if($resultadoRaca[RAC_CODIGO] == $anm_raca)
                                            echo "<OPTION VALUE=$resultadoRaca[RAC_CODIGO] selected >".$resultadoRaca[RAC_NOME]."</OPTION>";
                                        else
                                            echo "<OPTION VALUE='$resultadoRaca[RAC_CODIGO]'>".$resultadoRaca[RAC_NOME]."</OPTION>";
                  }
                echo "</SELECT>";
?>

O banco de dados tem um valor para as raças de cada especie na tabela RACA que é representado por ESP_CODIGO

a questão é que quando se altera a ESPECIE no form, a RAÇA deveria ser "reloadeada" para mostrar as raças da especie em questão...

então tenho que fazer isso funcionar... estou procurando por "selects dependentes" mas não encontro muita coisa.

Provavelmente vou tentar outro tópico já que esse já se deu popr resolvido, mas caso isso chame a atenção do Danilo estou postando aqui...

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde....

To com o mesmo problema, só que com um detalhe diferente...

Coloquei no meu primeiro select um evento onchange que chama essa função com um switch:

function SubAssunto(assunto){
    alert("Aberto");
        var select = document.getElementById('subassunto');
        switch(assunto){
            case "Senhas":
                select.options[0] = new Option("Novo login e senha", Novo login e senha);
                select.options[1] = new Option("Alteração de senha", Alteração de senha);
                select.options[2] = new Option("Exclusão de senha", Exclusão de senha);
            break;
            case "Navegação e Dúvidas":
                select.options[0] = new Option("Funcionalidade", Funcionalidade);
                select.options[1] = new Option("Conteúdo", Conteúdo);
            break;
            case "Bug":
                select.options[0] = new Option("Sistemas", Sistemas);
                select.options[1] = new Option("Informação", Informação);
            break;
            case "Input de Dado":
                select.options[0] = new Option("Subida de base e layer", Subida de base e layer);
                select.options[1] = new Option("Alteração de layer ou informação", Alteração de layer ou informação);
                select.options[2] = new Option("Subida de dados novos", Subida de dados novos);
            break;
        }
}

O parâmetro 'assunto' é a variável a ser tratada no switch, ou seja, a opção selecionada no primeiro select.

Eu coloquei aquele alert no início da função pra saber se o evento chama a mesma, no caso o evento é um onchange no primeiro select.

Se eu deixo o switch vazio, o alert aparece, ou seja, a função é chamada, porém se eu coloco os códigos, num chama nada, num importa o que eu faça...

Alguém consegue me ajudar, por favor..?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...