Foros del Web » Programando para Internet » Javascript »

Averiguar que textbox llama a la funcion

Estas en el tema de Averiguar que textbox llama a la funcion en el foro de Javascript en Foros del Web. Hola Amigos. Soy bastante nuevo con javascript asi que tratare de explicarlo lo mejor posible. Tengo un formulario con varias cajas de texto y mediante ...
  #1 (permalink)  
Antiguo 18/10/2007, 05:46
 
Fecha de Ingreso: mayo-2007
Mensajes: 15
Antigüedad: 17 años, 6 meses
Puntos: 0
Averiguar que textbox llama a la funcion

Hola Amigos.

Soy bastante nuevo con javascript asi que tratare de explicarlo lo mejor posible.

Tengo un formulario con varias cajas de texto y mediante el evento OnBlur, todas llaman a una misma funcion:

function GuardaTxt(variable)
{
var valor=document.formu1.precioestuche.value;
var direc="nuevosubproducto.php?"+variable+"="+valor; window.open(direc,'_top');
}

Lo que quiero conseguir es que la funcion averigue de alguna forma que caja de texto le esta llamando para asi recoger el valor de ese textbox en concreto.

Esto me ahorraria el tener que hacer tantas funciones como textbox tenga mi formulario.

Espero haberme explicado.

Gracias.
  #2 (permalink)  
Antiguo 18/10/2007, 06:15
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Re: Averiguar que textbox llama a la funcion

Hola alexoflexo

Pon el textbos así:

<input type="text" onblur = "GuardaTxt(this)" />

y en la función:

var valor=variable.value;

Saludos,
  #3 (permalink)  
Antiguo 18/10/2007, 07:26
 
Fecha de Ingreso: mayo-2007
Mensajes: 15
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Averiguar que textbox llama a la funcion

Gracias JavierB, pero no entiendo muy bien.

¿No tendria que pasarle alguna variable mas?

<input type="text" onblur = "GuardaTxt(this,'NombreTextbox')" />

Porque si no la funcion no sabra que es "variable"

var valor=variable.value;

Creo que antes no me he explicado bien, quiero recogern en la funcion el nombre del textbox que desencadena el evento y el valor del textbox.

Porque ¿¿que hace realmente el this??

¿Conoces algun enlace donde se explique este tema?

Gracias de nuevo

Última edición por alexoflexo; 18/10/2007 a las 07:35
  #4 (permalink)  
Antiguo 18/10/2007, 07:45
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Averiguar que textbox llama a la funcion

Hola alexoflexo:

En tu función GuardaTxt(variable), al llamarla en un campo de esta manera como te ha dicho Javier (:adios): onblur = "GuardaTxt(this)" this es el campo. Esto es, this sería lo mismo que escribir document.formu1.precioestuche, pero con el this podemos ahorrar código y referenciar al mismo campo automáticamente, sin escribir nombres ni id's ni nada por el estilo.


Si quieres seguir leyendo de estos aspectos, a qué se puede referir this y cómo trabajarlo bien puedes buscar por objetos de javascript, por "clases", por validaciones de formularios... es mucho más sencillo utilizar el this para obtener el objeto del que estamos hablando.

Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 18/10/2007, 07:55
 
Fecha de Ingreso: mayo-2007
Mensajes: 15
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Averiguar que textbox llama a la funcion

Gracias derkenuke, ya lo entiendo.

Sabrias decirme como puedo conocer el nombre del textbox que desencadena el evento??

Con var valor=variable.value obtengo el valor del campo de texto pero ademas me intersaria obtener el nombre del textbox.

Existe algo que equivalga a esto var nombretxtbox=variable.name

Gracias por vuestra paciencia.
  #6 (permalink)  
Antiguo 18/10/2007, 08:32
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Averiguar que textbox llama a la funcion

Hola de nuevo:

¿No te funciona var nombretxtbox=variable.name? Ten en cuenta que this es la caja. Igualmente te debería funcionar this.getAttribute("name") y this.getAttributeNode("name").nodeValue.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 04:54.