Foros del Web » Programando para Internet » Javascript »

problema con variables

Estas en el tema de problema con variables en el foro de Javascript en Foros del Web. Hola: Tengo una funcion en la que obtengo tres variables que luego tengo que usar, las variables me dicen el nombre del formulario, el nombre ...
  #1 (permalink)  
Antiguo 25/04/2005, 19:43
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 21 años
Puntos: 2
problema con variables

Hola:

Tengo una funcion en la que obtengo tres variables que luego tengo que usar, las variables me dicen el nombre del formulario, el nombre de campo del formulario (sea un input o un textarea) y un texto.

La funcion es asi:

function insertCode(form,name,code) {
document.form.name.value = document.form.name.value + code;
}

El tema es que no me reemplaza las variables "form" y "name" por las que envie a la funcion.

Tambien probé asi: document.+form+.+name+.value, pero me tira errores tambien

Como debo colocar las funciones en este caso?

Saludos.
__________________
I Love Programming...
  #2 (permalink)  
Antiguo 26/04/2005, 01:00
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola FuLaNo_

Prueba con:

document.forms[form][name].value=...

Saludos,
  #3 (permalink)  
Antiguo 26/04/2005, 11:34
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 21 años
Puntos: 2
Pues no ve va, me sale un error señalando esa linea y diciendo "se esperaba un identificador"...

las variables las envio a la funcion de esta forma:

onclick="insertCode('add_new','copete','N')"

En donde "add_new" es el formulario, "copete" el nombre del elemento (textarea) y "N" el parametro que envio...

Si en la funcion pongo directamente los valores:

Código HTML:
function insertCode(form,name,code) { 
document.add_new.copete.value = document.add_new.copete.value + code;
}
Funciona perfecto... el tema es que necesito hacer la funcion para reutilizarla en varios campos...

Haber si me ayudan :(

Saludos
__________________
I Love Programming...
  #4 (permalink)  
Antiguo 26/04/2005, 12:25
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

He hecho una página de prueba y me ha funcionado bien:
Código PHP:
<html>
<
head>
<
script>
function 
insertCode(form,name,code) {
  
document.forms[form][name].value += code;

</script>
</head>
<body>
<form name="add_new">
<textarea name="copete"></textarea>
<input type="button" onclick="insertCode('add_new','copete','N')" />
</form>
</body>
</html> 
Saludos,
  #5 (permalink)  
Antiguo 26/04/2005, 13:29
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola
Aparte de lo que dice Javier -que coincido en que debe funcionar-, creo que tu problema de evaluar los parámetros de la función se resolverá usando la función de javascript eval():
Código PHP:
eval("document."+form+"."+name).value += code
o bien
Código PHP:
var c=eval("document."+form+"."+name)
c.value += code
Pero es más segura la sintaxis forms[]
__________________
Angel :cool:
  #6 (permalink)  
Antiguo 26/04/2005, 13:52
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 21 años
Puntos: 2
JavierB, pues ahora me funcionó bien, seguramente le erré en algun caracter antes y por ello me enviava error.

angsanchez, muchas gracias, no se me habia ocurrido con evar(), lo tendré en cuenta para mas adelante.

Saludos!

PD: Me van a tener preguntando bastante por aca porque no se nada de javascript y estoy haciendo un sistemita en PHP que lo requiere ;)
__________________
I Love Programming...
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 15:45.