Saludos, estoy utilizando una funcion de javascript en conjunto con tres select para armar la seleccion de una fecha.
Es el siguiente:
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
//set fecha
Now = new Date();
NowDay = Now.getDate();
NowMonth = Now.getMonth();
NowYear = Now.getYear();
if (NowYear < 2000) NowYear += 1900; //para Netscape
//funcion para determinar cuantos dias tiene el mes seleccionado, incluyendo años bisiestos
function DaysInMonth(WhichMonth, WhichYear)
{
var DaysInMonth = 31;
if (WhichMonth == "Abril" || WhichMonth == "Junio" || WhichMonth == "Septiembre" || WhichMonth == "Noviembre") DaysInMonth = 30;
if (WhichMonth == "Febrero" && (WhichYear/4) != Math.floor(WhichYear/4)) DaysInMonth = 28;
if (WhichMonth == "Febrero" && (WhichYear/4) == Math.floor(WhichYear/4)) DaysInMonth = 29;
return DaysInMonth;
}
//funcion para cambiar la cantidad de dias disponibles para cada mes
function ChangeOptionDays(Which)
{
DaysObject = eval("document.datos." + Which + "Day");
MonthObject = eval("document.datos." + Which + "Month");
YearObject = eval("document.datos." + Which + "Year");
Month = MonthObject[MonthObject.selectedIndex].text;
Year = YearObject[YearObject.selectedIndex].text;
DaysForThisSelection = DaysInMonth(Month, Year);
CurrentDaysInSelection = DaysObject.length;
if (CurrentDaysInSelection > DaysForThisSelection)
{
for (i=0; i<(CurrentDaysInSelection-DaysForThisSelection); i++)
{
DaysObject.options[DaysObject.options.length - 1] = null
}
}
if (DaysForThisSelection > CurrentDaysInSelection)
{
for (i=0; i<(DaysForThisSelection-CurrentDaysInSelection); i++)
{
NewOption = new Option(DaysObject.options.length + 1);
DaysObject.add(NewOption);
}
}
if (DaysObject.selectedIndex < 0) DaysObject.selectedIndex == 0;
}
//funcion para fecha de hoy.
function SetToToday(Which)
{
DaysObject = eval("document.datos." + Which + "Day");
MonthObject = eval("document.datos." + Which + "Month");
YearObject = eval("document.datos." + Which + "Year");
YearObject[0].selected = true;
MonthObject[NowMonth].selected = true;
ChangeOptionDays(Which);
DaysObject[NowDay-1].selected = true;
}
//funcion que crea la lista de los años para el select correspondiente
function WriteYearOptions(YearsAhead)
{
line = "";
for (i=0; i<YearsAhead; i++)
{
line += "<OPTION>";
line += NowYear - i;
}
return line;
}
// End -->
</SCRIPT>
Con los campos select asi:
<SELECT NAME="FirstSelectDay">
<option value="01">01 </option>
<option value="02">02 </option>
<option value="03">03 </option>
<option value="04">04 </option>
<option value="05">05 </option>
<option value="06">06 </option>
<option value="07">07 </option>
<option value="08">08 </option>
<option value="09">09 </option>
<option value="10">10 </option>
<option value="11">11 </option>
<option value="12">12 </option>
<option value="13">13 </option>
<option value="14">14 </option>
<option value="15">15 </option>
<option value="16">16 </option>
<option value="17">17 </option>
<option value="18">18 </option>
<option value="19">19 </option>
<option value="20">20 </option>
<option value="21">21 </option>
<option value="22">22 </option>
<option value="23">23 </option>
<option value="24">24 </option>
<option value="25">25 </option>
<option value="26">26 </option>
<option value="27">27 </option>
<option value="28">28 </option>
<option value="29">29 </option>
<option value="30">30 </option>
<option value="31">31 </option>
</SELECT>
<SELECT NAME="FirstSelectMonth"
ONCHANGE="ChangeOptionDays('FirstSelect')">
<option value="01">Enero</option>
<option value="02">Febrero </option>
<option value="03">Marzo </option>
<option value="04">Abril </option>
<option value="05">Mayo </option>
<option value="06">Junio </option>
<option value="07">Julio </option>
<option value="08">Agosto </option>
<option value="09">Septiembre </option>
<option value="10">Octubre </option>
<option value="11">Noviembre </option>
<option value="12">Diciembre </option>
</SELECT>
<SELECT NAME="FirstSelectYear" ONCHANGE="ChangeOptionDays('FirstSelect')">
<SCRIPT LANGUAGE="JavaScript">
document.write(WriteYearOptions(50));
</SCRIPT>
</SELECT>
Bueno supongo que alguien lo ha usado. Pues mi problema es el siguiente no puedo validar el campo del año por que de los tres es el unico que no tiene value en el option, ya que la lista de ese option se escribe en la funcion javascript que puse arriba.
La parte del año es esta:
//funcion que crea la lista de los años para el select correspondiente
function WriteYearOptions(YearsAhead)
{
line = "";
for (i=0; i<YearsAhead; i++)
{
line += "<OPTION>";
line += NowYear - i;
}
return line;
}
AHORA MI PREGUNTA ES COMO PUEDO COLOCARLE LOS VALUES A CADA LINEA QUE AGREGA ESTA PARTE DE LA FUNCION, sabiendo lo que escribe el año en cada linea es el "NOWYEAR -i". como hago para que eso mismo sea el value???. Espero y me entiendan y puedan ayudarme.