Foros del Web » Programando para Internet » Javascript »

Campo de fecha

Estas en el tema de Campo de fecha en el foro de Javascript en Foros del Web. 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"> <!-- ...
  #1 (permalink)  
Antiguo 17/08/2005, 14:53
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años
Puntos: 2
Campo de fecha

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.
  #2 (permalink)  
Antiguo 18/08/2005, 09:06
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años
Puntos: 2
Por favor debe haber alguien que pueda ayudarme a ponele el value en ese javascript.

PD: este mensaje es para que vuelva a aparecer entre los primeros. en verdad necesito la ayuda.

Gracias y SALUDOS!!!
  #3 (permalink)  
Antiguo 18/08/2005, 14:17
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
pues no se si te sirva algo asi

hechale un ojo

http://www.htmlweb.net/webscript/for...cha_texto.html
__________________
gerardo
  #4 (permalink)  
Antiguo 19/08/2005, 08:18
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años
Puntos: 2
ok ok, gracias pero lo que me pones es el mismo codigo que yo puse, de paso ese que pones tiene el error de mostrar los años desde el actual hasta el 2054.

Se como funciona y se que no es necesario tener validacion de fecha por que es imposible colocar una fecha erronea. Ese no es el problema, mi problema es que yo le agregue la posibilidad de no haber colocado ninguna fecha, por que me lo piden asi colocandole a cada combo de lista los nombres dia, mes, año. por lo que si el usuario no selecciona nada allil, puede enviar una fecha vacia. Y eso es por que los campos de lista no tienen value, si comparas el que me pones y el que puse yo, a este ultimo le agregue los value de los dias y los value en numero de los meses, eso fue facil, pero el de año no por que esos lo llena el javascript, y eso es lo que estoy tratando de lograr colocarle los values a cada año por supuesto el value lo deberia de agregar el propio javascript.

Con esto no estoy tratando de ser grosero ni nada, solo trato de explicar mi situacion a ver si hay alguien que pueda ayudarme. De todos modos gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:06.