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

Integração de meses e dias em combo


Jonathan Queiroz

Pergunta

Ao selecionar um mês no combo de meses, é mostrado outro combo com a lista de dias desse mês

Código:

<html>
<head>
    <title>Quantidade de dias por mês</title>
    <script type="text/javascript">
    function qtddays(cbo_mes,cbo_dia){
        //Se o elemento HTML não existir, sai da função
        if(!cbo_mes||!cbo_dia){
            return
        }
        //Classe para obter meses
        var Meses=new function(){
            //Variáveis locais
            var meses=[]
            //Função para add meses
            var add=function(nome,dias){
                var y=meses.length
                meses[y]=new Array()
                meses[y]["nome"]=nome
                meses[y]["dias"]=dias
            }
            //Add meses
            add("Janeiro",31)
            add("Fevereiro",((new Date().getFullYear%4)==0)?29:28)
            add("Março",31)
            add("Abril",30)
            add("Maio",31)
            add("Junho",30)
            add("Julho",31)
            add("Agosto",31)
            add("Setembro",30)
            add("Outubro",31)
            add("Novembro",30)
            add("Dezembro",31)
            //Obter lista
            this.getAll=function(){
                return meses
            }
        }
        //Gera o array de meses
        var meses=Meses.getAll()
        var optMes
        cbo_mes.innerHTML=""
        for(var i=0;i<meses.length;i++){
            optMes=document.createElement("option")
            optMes.innerHTML=meses[i]["nome"]
            optMes.value=meses[i]["dias"]
            cbo_mes.appendChild(optMes)
        }
        //Atualiza o array de dias quando for modificado
        cbo_mes.onchange=function(){
            //Dia selecionado
            var selecionado=cbo_dia.value
            //Limpa a combo dos dias
            cbo_dia.innerHTML=""
            //Gera o novo array
            var otDia
            for(var i=1;i<=this.value;i++){
                optDia=document.createElement("option")
                optDia.value=i
                optDia.innerHTML=i
                if(i==selecionado){
                    optDia.selected=true
                }
                cbo_dia.appendChild(optDia)
            }
        }
        cbo_mes.onchange()
    }
    onload=function(){
        var cboMes=document.getElementById("cboMes")
        var cboDia=document.getElementById("cboDias")
        qtddays(cboMes,cboDia)
    }
    </script>
</head>
<body>
Mês: <select id="cboMes"></select>
<br />
Dia: <select id="cboDias"></select>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...