como fijar el foco de un campo desde una funcion javascript compartida?

25/08/2004 - 04:58 por leon | Informe spam
saludos listeros.

El problema es el siguiente:

Tengo una funcion javascript que recibe una fecha.
La funcion esta en un archivo el cual esta incluido en todas
las paginas asp.

La funcion recibe el contenido del campo y el nombre del control.

Si la fecha es mal digitada, la funcion devuelve un mensaje diciendo
que la fecha es incorrecta, pero sigue al siguiente campo.
Si le coloco focus() al segudo parametro, saca error.

Lo que necesito es que:

1. Se limpie el campo.
2. El campo gane el foco de nuevo y se quede allí.


Bueno, si alguien ha hecho algo pareccido, le agradeceria me colaborara.

saludos.

leon.

Preguntas similare

Leer las respuestas

#1 Alvaro G Vicario
25/08/2004 - 08:17 | Informe spam
*** leon wrote/escribió (Tue, 24 Aug 2004 21:58:08 -0500):
La funcion recibe el contenido del campo y el nombre del control.

Si la fecha es mal digitada, la funcion devuelve un mensaje diciendo
que la fecha es incorrecta, pero sigue al siguiente campo.
Si le coloco focus() al segudo parametro, saca error.



No nos pones nada de código. Hay muchas formas de hacer lo que dices, pero
puesto que das a entender que el contenido del campo se lee correctamente
lo único que has de hacer es tomar la expresión correspondiente y cambiar
".value" por ".focus().


Respuesta Responder a este mensaje
#2 leon
26/08/2004 - 05:33 | Informe spam
Aca va el codigo.

Me hago explicar mas:

Esta funcion esta en : Pagina1

Ahora, tengo campos de fechas, en Pagina2 y Pagina3 respectivamente,
ahora, desde Pagina2 y Pagina3 llamo la funcion que esta en Pagina1.
Lo que quiero es que la funcion me limpie los campos mal digitados y
gane el foco de ese campo.

Cómo puedo lograr eso? que le tengo que enviar a la funcio?

En este momento le envio el valor y el nombre del textbo.
AHora, el valor me lo evalua bien, pero cuando va a
limpiar el campo o ganar el foco saca error.

Alguna ayuda la apreciaria,
saludos leon.




function ValidaFecha(value, caja)
{
if (value == "")
{
return;
}
var datefield = caja;
a = value;
if ( a.length > 7 &&! (a.split("/")[0]*1 > 12 )&&!( a.split("/")[1]*1 >
31 )&&!( a.split("/")[2]*1 < 2000 )&&!( a.split("/")[2]*1 > 2040 ) )
{
return true
}
else
{
alert ("La fecha debe ser Mes/Dia/Año. Por favor verifique ")
//datefield.value="";
//datefield.setfocus();
return;
}
}




"Alvaro G Vicario" wrote in
message news:1ilez749uyj3n$
*** leon wrote/escribió (Tue, 24 Aug 2004 21:58:08 -0500):
> La funcion recibe el contenido del campo y el nombre del control.
>
> Si la fecha es mal digitada, la funcion devuelve un mensaje diciendo
> que la fecha es incorrecta, pero sigue al siguiente campo.
> Si le coloco focus() al segudo parametro, saca error.

No nos pones nada de código. Hay muchas formas de hacer lo que dices, pero
puesto que das a entender que el contenido del campo se lee correctamente
lo único que has de hacer es tomar la expresión correspondiente y cambiar
".value" por ".focus().


Respuesta Responder a este mensaje
#3 Alvaro G Vicario
26/08/2004 - 08:33 | Informe spam
*** leon wrote/escribió (Wed, 25 Aug 2004 22:33:45 -0500):
function ValidaFecha(value, caja)


[...]
var datefield = caja;
//datefield.value="";
//datefield.setfocus();



Es que no es setfocus(), es sólo focus():

datefield.focus();

Si así no te va, ¿te funciona poniendo esto?

caja.focus()


Respuesta Responder a este mensaje
#4 leon
26/08/2004 - 16:36 | Informe spam
hey man, eso lo intente varias veces, pero me saca error, no se porque pero
es como si no
encontrara el textbox.

saludos.

leon.


"Alvaro G Vicario" wrote in
message news:
*** leon wrote/escribió (Wed, 25 Aug 2004 22:33:45 -0500):
> function ValidaFecha(value, caja)
[...]
> var datefield = caja;
> //datefield.value="";
> //datefield.setfocus();

Es que no es setfocus(), es sólo focus():

datefield.focus();

Si así no te va, ¿te funciona poniendo esto?

caja.focus()


Respuesta Responder a este mensaje
#5 Sashka
26/08/2004 - 17:24 | Informe spam
Claro... no lo encuentra o mejor dicho no sabe en que formulario
buscar me imagino que pagina1 está incluida en las páginas 2 y 3... (si
no ni siquiera encontraría la función)

Yo lo que haría sería sacar la función de pagina1 y ponerla en un js
independiente y me referiría al control como :
document.forms[0].caja

Si insistes en dejarla en pagina1... entonces asegúrate que los formularios
se llamen diferente (en cada página) ... pásale tambien el nombre del
formulario y refierete al control como :
document.forms[variableNombreForm].caja

Sashka
MS MVP Access

"leon" escribió en el mensaje
news:
hey man, eso lo intente varias veces, pero me saca error, no se porque


pero
es como si no
encontrara el textbox.

saludos.

leon.


"Alvaro G Vicario" wrote in
message news:
> *** leon wrote/escribió (Wed, 25 Aug 2004 22:33:45 -0500):
> > function ValidaFecha(value, caja)
> [...]
> > var datefield = caja;
> > //datefield.value="";
> > //datefield.setfocus();
>
> Es que no es setfocus(), es sólo focus():
>
> datefield.focus();
>
> Si así no te va, ¿te funciona poniendo esto?
>
> caja.focus()
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida