Buscar en Mundobip

Artículos | Foro

cambiar valor de formulario

cambiar valor de formulario

Notapor Fran.11 » 04 Ene 2013 14:52

hola, me pueden decir como realizar la funcion para obtener o añadir el valor de un campo de texto y mediante el evento onfocus o onchange que desaparezca ese valor del campo de texto? no se si me entendeis...
para obtener o añadir dicho valor en el campo de texto realizo esta sentencia pero a partir de ahi no se como continuar: saludos...

Código: Seleccionar todo
var valor=document.getElementById("nombre").value;




Publicidad
Fran.11
 
Mensajes: 108
Registrado: 22 May 2012 11:23

Re: cambiar valor de formulario

Notapor Fran.11 » 04 Ene 2013 19:52

he hecho este código pero necesito que cada campo de texto cambie al hacer onfocus, pero no lo consigo ya que cambian los dos al mismo tiempo...en que fallo?
Código: Seleccionar todo
function texto_valor(datos) {
   document.getElementById("nombre").value="";
   document.getElementById("apellido1").value="";
}

onfocus="texto_valor(id);

Fran.11
 
Mensajes: 108
Registrado: 22 May 2012 11:23

Re: cambiar valor de formulario

Notapor Irenicus » 05 Ene 2013 03:26

No te entiendo muy bien ...

¿Quieres obtener el valor de un elemento? Vas bien:
Código: Seleccionar todo
var valor = document.getElementById("nombre").value;

¿Quieres borrar el texto de un elemento? Vas bien:
Código: Seleccionar todo
document.getElementById("nombre").value = "";

¿Quieres hacer algo de lo anterior en un atributo onfocus u onchange? Vas bien:
(¡Ojo! Versión simplificada) Declara una función que lo haga por cada elemento y pon la función correspondiente en el campo onchange u onfocus de cada elemento.
Código: Seleccionar todo
function borrar_nombre() {
    document.getElementById("nombre").value = "";
}

function borrar_apellido1() {
    document.getElementById("apellido1").value = "";
}

Una opción más eficiente, sería pasar un parámetro a una función, bastándote así una sola:
Código: Seleccionar todo
function borrar_elemento(elemento) {
    document.getElementById(elemento).value = "";
}

Y pon la función correspondiente en el campo onchange u onfocus de cada elemento más el parámetro que le toque:
Código: Seleccionar todo
onfocus='borrar_elemento("nombre")'
onfocus='borrar_elemento("apellido1")'


¡Ojo final! No he probado el código, puedo haberme dejado comillas, paréntesis, etc.
Avatar de Usuario
Irenicus
 
Mensajes: 1238
Registrado: 19 Mar 2007 23:22

Re: cambiar valor de formulario

Notapor Fran.11 » 05 Ene 2013 11:34

he puesto esta sentencia para agruparlo todo en una funcion y no acaba de funcionar:
Código: Seleccionar todo
function borrar_elemento(elemento) {
    document.getElementById("elemento").value = "";
}
//y esta linea en cada elemento:
onfocus='borrar_elemento("nombre")'
onfocus='borrar_elemento("apellido1")'


que crees que puede fallar?
Fran.11
 
Mensajes: 108
Registrado: 22 May 2012 11:23

Re: cambiar valor de formulario

Notapor Irenicus » 05 Ene 2013 13:46

Las comillas, seguramente:

El siguiente código busca el id="elemento", tal cual: elemento, seguramente no exista.
Código: Seleccionar todo
function borrar_elemento(elemento) {
document.getElementById("elemento").value = "";
}


Seguramente deberías quitarlas. Para que coja el valor del parámetro elemento:

Código: Seleccionar todo
function borrar_elemento(elemento) {
document.getElementById(elemento).value = "";
}


Para facilitar tu tarea, prueba a ponerte chivatos. De este modo sabrás si has entrado en la función:

Código: Seleccionar todo
function borrar_elemento(elemento) {
alert("He entrado con el parámetro:");
alert(elemento);
document.getElementById(elemento).value = "";
}

Avatar de Usuario
Irenicus
 
Mensajes: 1238
Registrado: 19 Mar 2007 23:22

Re: cambiar valor de formulario

Notapor Fran.11 » 05 Ene 2013 21:19

ahora sin las comillas funciona muy bien( sin los chivatos); muchas gracias...
hablando de ello, me puedes decir como es posible que funcione sin comillas al referirte al id si generalmente se pone con comillas para referirte al atributo id en cuestion?
Fran.11
 
Mensajes: 108
Registrado: 22 May 2012 11:23

Re: cambiar valor de formulario

Notapor Irenicus » 05 Ene 2013 21:34

De la manera incorrecta intentas coger el elemento cuyo id es exactamente elemento.

De la manera correcta intentas coger el elemento cuyo id es igual al valor del parámetro elemento de la función.
De hecho, por eso es tan útil el uso de parámetros en funciones, porque permiten usar un elemento genérico que es definido por la llamada a la función.

Supón el siguiente ejemplo de código javascript:

Código: Seleccionar todo
function chívate (texto) {
    alert (texto);
    alert ("texto");
}

/* Lo siguiente son las llamadas a la función */
chívate ("caca"); /* Caso 1 */
chívate ("hola"); /* Caso 2 */


En el caso 1, el resultado deberían ser dos alerts, primero "caca" y después "texto".
En el caso 2, el resultado deberían ser dos alerts, primero "hola" y después "texto".

Como puedes deducir, el parámetro es diferente según la llamada, mientras que la palabra "texto" siempre es "texto".
Avatar de Usuario
Irenicus
 
Mensajes: 1238
Registrado: 19 Mar 2007 23:22

Re: cambiar valor de formulario

Notapor Fran.11 » 05 Ene 2013 23:06

ok muchas gracias...
otra cosa relativa a esta funcion; podria llamarse a la funcion de forma semantica? es decir directamente desde la misma funcion para que el xhtml quedase mas limpio.
intente con esta sentencia pero en algo debo fallar:

Código: Seleccionar todo
document.getElementById(elemento).onfocus=borrar_elemento;

Fran.11
 
Mensajes: 108
Registrado: 22 May 2012 11:23

Re: cambiar valor de formulario

Notapor Irenicus » 06 Ene 2013 14:47

Debería funcionar, aunque nunca lo he hecho, pero quizás deberías probar con esto:

Código: Seleccionar todo
document.getElementById(elemento).onfocus = function(){ borrar_elemento(elemento); };


Ya que de otro modo estarías asignando el resultado de la función borrar_elemento, en lugar de la función en sí.
Avatar de Usuario
Irenicus
 
Mensajes: 1238
Registrado: 19 Mar 2007 23:22

Re: cambiar valor de formulario

Notapor Fran.11 » 07 Ene 2013 13:25

no funciona; como ves lo puse asi:
Código: Seleccionar todo
function borrar_elemento(elemento){
    document.getElementById(elemento).value = "";
    document.getElementById(elemento).style.backgroundColor= "#F6FFA9";
    document.getElementById(elemento).style.border= "2px solid #e6b700";
    document.getElementById(elemento).onfocus = function(){ borrar_elemento(elemento); };
}

Fran.11
 
Mensajes: 108
Registrado: 22 May 2012 11:23

Siguiente

Volver a Javascript

¿Quién está conectado?

Usuarios registrados: Bing [Bot], Google [Bot]