Foros del Web » Programando para Internet » Javascript »

Validación de una fecha con NAME variable

Estas en el tema de Validación de una fecha con NAME variable en el foro de Javascript en Foros del Web. Hola, tengo un formulario cuyos campos proceden de una consulta a una base de datos y los name de los <input text> son variables php, ...
  #1 (permalink)  
Antiguo 13/06/2002, 06:52
 
Fecha de Ingreso: mayo-2002
Mensajes: 88
Antigüedad: 22 años
Puntos: 0
Validación de una fecha con NAME variable

Hola, tengo un formulario cuyos campos proceden de una consulta a una base de datos y los name de los <input text> son variables php, bien, hay varios inputs que son fechas y yo quiero validar cada uno con el evento onBlur, la función javscript de validar la fecha ya la tengo hecha, el problema es que al tener que pasarle a esa función ese name del objeto input, no se como hacerlo, he probado a meterle el nombre de la variable php pero me da un error desconocido según él.

Os pongo un trocito para que lo entendais mejor:


while (odbc_fetch_row($queryC))
{ $marca = true;
$fechaAux=odbc_result($queryC,1);
$fechaAnio=(substr ("$fechaAux", 0, 4));
$fechaMes=(substr ("$fechaAux", 5, 2));
$fechaDia=(substr ("$fechaAux", 8, 2));
/*los name's de los input llevan un nombre variable con el id de asignatura para
poder distinguirlos a la hora de procesar los datos*/ ?>
<td><input type="text" name="<?echo 'f'.$vectorAsig[$aux];?>" size="15" maxlength="10" value="<? echo $fechaDia.'/'.$fechaMes.'/'.$fechaAnio;?>" onBlur"validarFecha(???)"></td>
<td><input type="text" name="<?echo 'l'.$vectorAsig[$aux];?>" size="15" maxlength="200" value="<?echo odbc_result($queryC,2);?>"></td>
<td><input type="checkbox" name="seleccionados[]" value="<?echo $vectorAsig[$aux];?>">
<?}
if ($marca == false)
{?>
<td><input type="text" name="<?echo 'f'.$vectorAsig[$aux];?>" size="15" maxlength="10" value="" onBlur"validarFecha(???)"></td>
<td><input type="text" name="<?echo 'l'.$vectorAsig[$aux];?>" size="15" maxlength="200" value=""></td>
<td><input type="checkbox" name="seleccionados[]" value="<?echo 'c'.$vectorAsig[$aux];?>"> <?
}?>
</tr> <?
} /* foreach */?>

Mi problema es : ¿qué pongo en los sitios donde tengo las interrogaciones???, muchas gracias.
  #2 (permalink)  
Antiguo 13/06/2002, 07:04
 
Fecha de Ingreso: febrero-2002
Mensajes: 127
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Validación de una fecha con NAME variable

Hola Maria, si sustituyes las interrogaciones por "this" (sin comillas) debería funcionarte, ya que haces referencia al objeto desde el que llamas a la función, es decir el input actual.
Un saludo.

<hr>Todo sobre DHTML y javascript en <A HREF="http://www.iespana.es/topscripts">TopScripts</A><p><cite>Si el orgulloso se diese cuenta de lo ridículo que queda ante los que le conocen, por orgullo sería más humilde</cite>
Val Muñoz de Bustillo<hr>
  #3 (permalink)  
Antiguo 13/06/2002, 09:08
 
Fecha de Ingreso: mayo-2002
Mensajes: 88
Antigüedad: 22 años
Puntos: 0
Re: Validación de una fecha con NAME variable

Muchas gracias love_uca, hice lo que me dijiste pero me da un error al enviar el formulario:

error:'value' es nulo o no es un objeto.

Te enseño la función javascript, pq como soy nueva en esto igual se me pasó algo por alto:

function validarFecha(obj)
{

fecha=obj.value.split(&quot;/&quot;);
if(fecha.length==3)
{
if(parseInt(fecha[0])&gt;31 || (parseInt(fecha[0])&lt;1))
{
alert('el dia no es correcto');
return false;
}
if(parseInt(fecha[1])&gt;12 || (parseInt(fecha[1])&lt;1))
{
alert('el mes no es correcto');
return false;
}

// Con esto compruebo que esté correctamente formada y verifico años bisiestos.

var mifecha = new Date(fecha[2],fecha[1]-parseInt(1),fecha[0])
if(parseInt(fecha[0])!=parseInt(mifecha.getDate()))
{
alert('La fecha introducida NO es correcta');
return false;
}//if
}//if

else
alert('El formato debe ser dd/mm/yyy');
}

Muchísimas gracias por tu tiempo
  #4 (permalink)  
Antiguo 13/06/2002, 10:56
 
Fecha de Ingreso: febrero-2002
Mensajes: 127
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Validación de una fecha con NAME variable

Hola 3pMaria, mira, el problema se encontraba en el script (seguramente un despiste), y es que cuando declaras la variable fecha no has puesto &quot;var&quot;. Normalmente no hay problemas por no utilizar var, pero en este caso si lo da, así que pon var fecha y arreglado.
Un saludo.

<hr>Todo sobre DHTML y javascript en <A HREF="http://www.iespana.es/topscripts">TopScripts</A><p><cite>Si el orgulloso se diese cuenta de lo ridículo que queda ante los que le conocen, por orgullo sería más humilde</cite>
Val Muñoz de Bustillo<hr>
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 02:09.