Select dinámico para fechas...
Hola estoy haciendo una JSP y en ella tengo 2 select uno con los meses del año y otro con los días. Lo que quiero hacer es que cuando se elija algún mes, el otro select solo muestre el número máximo de días que se puedan seleccionar para ese mes ( 28, 29, 30 o 31 ).
Mi idea es crear una funcion javascript que tenga como argumento el número correspondiente al mes seleccionado y utilizar la clase Calendar de java pero no se como pasar el argumento de la función javascript a la clase Calendar. Sería algo similar a esto:
fucntion cuantosdias( numeroMes ){
<%Calendar c = Calendar.getInstance( );
c.set( c.MONTH, %>numeroMES <%);
.....
}
Pero me marca error.
Ojala me puedan ayudar
Mi idea es crear una funcion javascript que tenga como argumento el número correspondiente al mes seleccionado y utilizar la clase Calendar de java pero no se como pasar el argumento de la función javascript a la clase Calendar. Sería algo similar a esto:
fucntion cuantosdias( numeroMes ){
<%Calendar c = Calendar.getInstance( );
c.set( c.MONTH, %>numeroMES <%);
.....
}
Pero me marca error.
Ojala me puedan ayudar
No puedes, los scriplets se ejecutan en el servidor y los javascript en cliente de esa forma no puedes hacerlo. Lo que tienes que hacer es enviar un formulario a la siguiente pagina co ese dato.
Hola, gracias por responder.
El problema es que no necesito cambiar de pagina. Existe alguna forma en que pueda hacer eso??
El problema es que no necesito cambiar de pagina. Existe alguna forma en que pueda hacer eso??
Este es el típico caso de listas dependiente, a mi se me ocurre esta función javascript que deberías llamar en el evento onChange del select de meses:
function SelectDias(){
var numdias;
mes = document.forms[0].selectMes.selectedIndex + 1;
dias = document.forms[0].selectDia;
if (mes == 1)||(mes == 3) || (mes == 5)||
(mes == 7)||(mes == 8) || (mes == 10) || (mes == 12){ //mes de 31 dias
numdias = 31;
}
else if (mes = 2){ //febrero
numdias = 28;
}
else {
numdias = 30;
}
//limpiamos de opciones el select de dias
dias.options.length = 0;
//creamos las opciones del selectDia segun numdias
for(i = 0; i < numdias; i++){
if (i == 0) dias.options[i] = new Option(i+1, i+1, "defauldSelected");
dias.options[i] = new Option(i+1, i+1);
//siendo el primer parametro el texto que aparecera en la lista
//y el segundo el listvalue del elemento
}
}
Interesante link para esto:
http://www.gamarod.com.ar/articulos/listas_dependientes.asp
Espero te sirva de ayuda,
Un saludo.
function SelectDias(){
var numdias;
mes = document.forms[0].selectMes.selectedIndex + 1;
dias = document.forms[0].selectDia;
if (mes == 1)||(mes == 3) || (mes == 5)||
(mes == 7)||(mes == 8) || (mes == 10) || (mes == 12){ //mes de 31 dias
numdias = 31;
}
else if (mes = 2){ //febrero
numdias = 28;
}
else {
numdias = 30;
}
//limpiamos de opciones el select de dias
dias.options.length = 0;
//creamos las opciones del selectDia segun numdias
for(i = 0; i < numdias; i++){
if (i == 0) dias.options[i] = new Option(i+1, i+1, "defauldSelected");
dias.options[i] = new Option(i+1, i+1);
//siendo el primer parametro el texto que aparecera en la lista
//y el segundo el listvalue del elemento
}
}
Interesante link para esto:
http://www.gamarod.com.ar/articulos/listas_dependientes.asp
Espero te sirva de ayuda,
Un saludo.