Foros del Web » Programando para Internet » Javascript »

Codigo mal en funcion con variables?

Estas en el tema de Codigo mal en funcion con variables? en el foro de Javascript en Foros del Web. Muy buenas de nuevo (Hoy me estoy luciendo con la cantidad de preguntas, joer) Tengo una funcion en la que quiero definir unas variables, pero ...
  #1 (permalink)  
Antiguo 14/11/2006, 11:16
 
Fecha de Ingreso: noviembre-2004
Mensajes: 125
Antigüedad: 19 años, 5 meses
Puntos: 0
Codigo mal en funcion con variables?

Muy buenas de nuevo (Hoy me estoy luciendo con la cantidad de preguntas, joer)

Tengo una funcion en la que quiero definir unas variables, pero realmente no se si lo estoy haciendo bien:

Código:
function cambio(boton,campo,variable){
	eval("var "+variable+" = document.forms.form1."+campo+".value;");
	switch(variable) {
	case "0":
	eval("document.forms.form1."+boton+".value='Si ';");
	eval("document.forms.form1."+campo+".value = '1';");
	break;
	case "1":
	eval("document.forms.form1."+boton+".value='No';");
	eval("document.forms.form1."+campo+".value = '2';");
	break;
	default:
	eval("document.forms.form1."+boton+".value='--';");
	eval("document.forms.form1."+campo+".value = '0';");
	break;
	}
	}
(Te suena el codigo de switch caricatos? )

Código:
<input type="button" name="btn01" id="btn01" onClick="cambio(btn01,cod_uno,var_uno)" value="--" class="WG519">
Alguna idea??

Saludos de nuevo y gracias!
  #2 (permalink)  
Antiguo 15/11/2006, 05:14
 
Fecha de Ingreso: noviembre-2004
Mensajes: 125
Antigüedad: 19 años, 5 meses
Puntos: 0
He probado a poner también el switch con eval, y sigue igual :(
  #3 (permalink)  
Antiguo 15/11/2006, 05:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por Jomer_zgz Ver Mensaje
Muy buenas de nuevo (Hoy me estoy luciendo con la cantidad de preguntas, joer)
...
(Te suena el codigo de switch caricatos? )
...
¡Je, je !... claro que me suena.

Las referencias a subobjetos y atributos en una página, aparte de hacerse con puntos, se puede hacer mediente cadenas de texto entrecorchetadas...

document.forms.form1.campo.value;
es igual que
document.forms.form1["campo"].value;

así que solo tienes que quitar esos odiosos "eval" (no me gustan nada) y poner tus variables entre corchetes...

Y las variables deben ser parte del objeto window, así que te arreglo la primera línea, y te dejo el resto como tarea...

window[variable] = document.forms.form1[campo].value;

Lo que no tengo muy claro es el contenido del switch... creo que deberia ser:
switch(window[variable])

Bueno, ya nos contarás.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 15/11/2006, 10:18
 
Fecha de Ingreso: noviembre-2004
Mensajes: 125
Antigüedad: 19 años, 5 meses
Puntos: 0
Puessssssss me temo que me sigue dando error.

Me dice que document.forms.form[...].value no esta definido. (Me sustituye la variable por 3 puntos suspensivos).

El codigo:

Código:
function cambio(boton,campo,variable){
	window[variable] = document.forms.form1[campo].value;
	switch(window[variable]) {
	case "0":
	document.forms.form1[boton].value='Si ';
	document.forms.form1[campo].value = '1';
	break;
	case "1":
	document.forms.form1[boton].value='No';
	document.forms.form1[campo].value = '2';
	break;
	default:
	document.forms.form1[boton].value='--';
	document.forms.form1[campo].value = '0';
	break;
	}
	}
Y el boton, como ya puse (no he cambiao nada):

<input type="button" name="btn01" id="btn01" onClick="cambio(btn01,cod_uno,var_uno)" value="--">

La verdad, no sé qué estoy haciendo mal... ains
  #5 (permalink)  
Antiguo 15/11/2006, 10:25
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Dentro de la función se supone que pones textos y no variables u objetos, así que tendrías que entrecomillarlos:

<input type="button" name="btn01" id="btn01" onClick="cambio('btn01', 'cod_uno', 'var_uno')" value="--">

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 15/11/2006, 10:30
 
Fecha de Ingreso: noviembre-2004
Mensajes: 125
Antigüedad: 19 años, 5 meses
Puntos: 0
Evidentemente, tenías razón. No me había percatado de ello. Los estaba interpretando igualmente como variables.

Muchas gracias.
  #7 (permalink)  
Antiguo 15/11/2006, 10:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Me alegro de que sea eso...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 09:31.