Foros del Web » Programando para Internet » Javascript »

cuando un input text tiene el foco

Estas en el tema de cuando un input text tiene el foco en el foro de Javascript en Foros del Web. Hola, mi problema es el siguiente tengo una página en la que se rellenan unos campos de texto y al pulsar un texto se envian ...
  #1 (permalink)  
Antiguo 03/10/2003, 05:44
Avatar de lach  
Fecha de Ingreso: enero-2003
Ubicación: Alicante
Mensajes: 29
Antigüedad: 21 años, 3 meses
Puntos: 0
Exclamación cuando un input text tiene el foco

Hola, mi problema es el siguiente tengo una página en la que se rellenan unos campos de texto y al pulsar un texto se envian como parametro a otro. He hecho que pulsando Intro se ejecute la función de envio.
Pero me gustaría controlar que solo se llamara a esta función si pulso Intro en la caja de texto, de lo contrario no haga nada.
A mi se me ocurre mirar si la caja de texto tiene el foco o no para desencadenar la función que se ejecuta al pulsar Intro, pero no he encontrado ninguna manera de averiguar si la caja tiene el foco, solo existen eventos de foco asociados a la caja y no propiedades. ¿Alguna solución?

__________________
Saludos...
  #2 (permalink)  
Antiguo 03/10/2003, 10:43
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola lach.

Yo en tu logar pondría una variable global que te indique si se puede o no enviar el formulario. Hecho esto, podrías jugar con el método onfocus y onblur de cada elemento. Algo asi:

var dentroDeText = false;

function cambia(bDentro){
dentroDeText = bDentro;
}

y en tus texts lo siguiente:

<input type="text" onfocus="cambia(true)" onblur="cambia(false)">

Saludos.
  #3 (permalink)  
Antiguo 09/10/2003, 22:59
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Hola lach, Kaopectate :

Si ya hay una función que se ejecuta con Intro, ¿ qué puede impedir que se ejecute desde el input ?.

<input onkeyup="if(event.keyCode=='13')ALGUNA_FUNCION(); ">

Habría que confirmar si el código "13" funciona para Mac, tengo entendido que el orden en el teclado es diferente.

Por otro lado, el método para saber quién está en foco es document.activeElement .

Un ejemplo :

Código:
<HTML>
<HEAD>
<SCRIPT>
function verTAG(){
alert("<"+document.activeElement.tagName+">");
}
</SCRIPT>
</HEAD>
<BODY>
<h2>Pasa el puntero por <font color=blue 
onmouseover=verTAG()><u>AQUÍ</u></font> 
para ver la etiqueta del elemento en foco.</h2>

<a href="#" onclick="return false;/* ÉSTO ES SÓLO 
PARA QUE NO RECARGUE LA PÁGINA */">Anchor</a>
<p>
<input value="Input">
<p>
<button>Button</button>
<p>
<textarea>Textarea</textarea>
<p>
<select><option>Select <option>Select <option>Select </select>

</BODY>
</HTML>
Habría que confirmar si el método funciona en otro navegador que no sea el Internet Explorer .

Saludos

furoya

Última edición por furoya; 15/10/2003 a las 06:57
  #4 (permalink)  
Antiguo 10/10/2003, 07:25
Avatar de lach  
Fecha de Ingreso: enero-2003
Ubicación: Alicante
Mensajes: 29
Antigüedad: 21 años, 3 meses
Puntos: 0
muchas gracias a los dos, ambos metodos funcionan a la perfección
__________________
Saludos...
  #5 (permalink)  
Antiguo 26/01/2005, 05:07
 
Fecha de Ingreso: agosto-2003
Mensajes: 99
Antigüedad: 20 años, 8 meses
Puntos: 0
Hola, buenas.

El caso es que esta linea me viene de perlas:

alert("<"+document.activeElement.tagName+">");

el problema es que, solo funciona en IE? hay algo para mozilla, etc...

un saludo.
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 16:23.