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>
Pergunta
Jonathan Queiroz
Ao selecionar um mês no combo de meses, é mostrado outro combo com a lista de dias desse mês
Código:
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.