Foros del Web » Programando para Internet » Javascript »

malditos frames

Estas en el tema de malditos frames en el foro de Javascript en Foros del Web. Bueno, seguimos en lucha con el JavaScript y los malditos frames :) ... Os pongo en antecedentes: Ayer posteé un problema que era básicamente que ...
  #1 (permalink)  
Antiguo 21/03/2002, 04:51
 
Fecha de Ingreso: junio-2001
Mensajes: 110
Antigüedad: 23 años, 5 meses
Puntos: 0
malditos frames

Bueno, seguimos en lucha con el JavaScript y los malditos frames :) ...

Os pongo en antecedentes:
Ayer posteé un problema que era básicamente que no podía acceder desde un frame a objetos situados en otro frame. Gracias a jlmm que me ayudó bastante, conseguí acceder a esos objetos, pero por desgracia me ha surgido otro problema del tipo "X-Files" y es el siguiente (primero pongo el código y luego la explicación):
Cita:
default.asp
<frameset cols="50%,*">
<frame name="left" src="left.htm" marginwidth="10" marginheight="10" scrolling="auto" frameborder="1">
<frame name="right" src="right.htm" marginwidth="10" marginheight="10" scrolling="auto" frameborder="0">
</frameset>
Cita:
left.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>

<body>
<input type="radio" name="test" value="test1">testbuton1
<input type="radio" name="test" value="test2">testbuton2


</body>
</html>
Cita:
right.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function validar()
{
alert(parent.left.test.value);
}
//-->
</SCRIPT>
</head>

<body>
<input type="Button" name="boton" onclick="validar()">


</body>
</html>
Bueno, pues el problema que tengo es que cuando pulso uno de los radios y luego pincho en el botón, el alert me devuelve 'undefined'. ¡¡¡No entiendo por qué me hace eso cuando tengo metido valores en los radio button!!!. ¡¡¡Help me pleaseeeee!!!!
  #2 (permalink)  
Antiguo 21/03/2002, 06:41
 
Fecha de Ingreso: junio-2001
Mensajes: 110
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: malditos frames

¿ke pasa hoy en el foro?. ¿es ke no hay nadie?... :cantar: EEEECCCCOOOO.... :cantar: EEEEEEEEEECCCCCCOOOOO...
  #3 (permalink)  
Antiguo 21/03/2002, 08:47
 
Fecha de Ingreso: julio-2001
Ubicación: Internet
Mensajes: 1.690
Antigüedad: 23 años, 4 meses
Puntos: 1
Re: malditos frames

Hola!,

Mira, Primero Que Todo Hay Un Conflicto por Que Tienes Dos Radio Button Con El Mismo Nombre, Le Cambie El Nombre A Uno De Ellos:

<input type="radio" name="test1" value="test1">testbuton1
<input type="radio" name="test" value="test2">testbuton2

Y Funciono.

************************************************** ****************

Otra Cosa, El Echo De Que Pulses Sobre Un Radio Button No Tiene Nada Que Ver Con Su Valor, Osea, Tu Crees Que Con Pulsarlo El Va A Reconocer Que Debe Traer Ese Valor, Pero No, Cuando Lo Pulsas Como Ya Te Habia Dicho Antes Cambias Su Propiedad CHECKED.

Y Esta La Utilizas Obteniendo Si Es Falsa O Verdadera, Un Ejemplo:

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function validar()
{
if(parent.left.test.checked == true)
{
alert(parent.left.test.value);
}
}
//-->
</SCRIPT>

Esto Haria Que El Alerta Saltara Solo Si Esta Checkeado El Segundo Radio Button Cuyo Nombre Es "test", Recuerda Que Le Cambie Al Otro El nombre A test1 Por Conflicto.

Cualquier Duda No Dudes Es Exponerla.

<CENTER><FONT COLOR=Black SIZE=2><I>"No Hay Cosas Imposibles, Solo Hombres Incapaces"</I></FONT></CENTER>
  #4 (permalink)  
Antiguo 21/03/2002, 10:25
 
Fecha de Ingreso: junio-2001
Mensajes: 110
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: malditos frames

¡Hey!, hola jlmm. Eso que me has dicho ya lo habia probado ya y efectivamente funciona, pero el problema es que si te fijas, haciéndolo así, podrías seleccionar todos y cada uno de los radio simultáneamente y, claro está, no se obtendrían los efectos deseados puesto que eso también lo logras usando &quot;checkbox&quot;.
El por qué he usado el mismo nombre para todos los radio es porque según he leido en algún tutorial de html de esta forma se logra que sólo pueda haber un radio seleccionado simultáneamente.

Una vez más gracias jlmm
FeReNZCy :)
  #5 (permalink)  
Antiguo 21/03/2002, 10:47
 
Fecha de Ingreso: julio-2001
Ubicación: Internet
Mensajes: 1.690
Antigüedad: 23 años, 4 meses
Puntos: 1
Re: malditos frames

Hola!,

Entonces Podrias Hacer Un Script Para Que Se Pueda Seleccionar Solo Un Radio Button y Puedan Tener Nombres Distintos, Seria Algo Asi Por Ejemplo:

left.htm

&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Untitled&lt;/title&gt;


&lt;SCRIPT LANGUAGE=&quot;javascript&quot;&gt;
function comprueba(que)
{
test1.checked = false;
test.checked = false;
this.checked = false;
}
&lt;/SCRIPT&gt;

&lt;/head&gt;

&lt;body&gt;
&lt;input type=&quot;radio&quot; name=&quot;test1&quot; value=&quot;test1&quot; onClick=&quot;comprueba(this)&quot; &gt;testbuton1
&lt;input type=&quot;radio&quot; name=&quot;test1&quot; value=&quot;test&quot; onClick=&quot;comprueba(this)&quot; &gt;testbuton2


&lt;/body&gt;
&lt;/html&gt;


De Esta Manera Tienen Nombres Diferentes Y No Se Pueden Seleccionar Los Dos A La Vez

<CENTER><FONT COLOR=Black SIZE=2><I>"No Hay Cosas Imposibles, Solo Hombres Incapaces"</I></FONT></CENTER>
  #6 (permalink)  
Antiguo 21/03/2002, 11:13
 
Fecha de Ingreso: junio-2001
Mensajes: 110
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: malditos frames

Lo siento, pero no comprendo muy bien el funcionamiento del script. ¿Me lo podrías explicar un poco, por favor?.

Gracias
FeReNZCy
  #7 (permalink)  
Antiguo 21/03/2002, 11:33
 
Fecha de Ingreso: julio-2001
Ubicación: Internet
Mensajes: 1.690
Antigüedad: 23 años, 4 meses
Puntos: 1
Re: malditos frames

Hola!,

Si, De Una Vez para Decirte Que Me Equivoque En Algunas Cosas Con El Codigo, Este Es El Codigo Corregido Luego La Explicacion:

&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Untitled&lt;/title&gt;

&lt;SCRIPT LANGUAGE=&quot;javascript&quot;&gt;

function comprueba(esto)
{
test1.checked = false;
test.checked = false;
esto.checked= true;
}

&lt;/SCRIPT&gt;

&lt;/head&gt;

&lt;body&gt;
&lt;input type=&quot;radio&quot; name=&quot;test1&quot; value=&quot;test1&quot; onClick=&quot;comprueba(this)&quot; &gt;testbuton1
&lt;input type=&quot;radio&quot; name=&quot;test1&quot; value=&quot;test&quot; onClick=&quot;comprueba(this)&quot; &gt;testbuton2


&lt;/body&gt;
&lt;/html&gt;

Ahora, Cada Vez Que El Usuario De Click En Uno De Los Radio(Para Chequearlo):

&lt;input type=&quot;radio&quot; name=&quot;test1&quot; value=&quot;test1&quot; onClick =&quot;comprueba(this)&quot;&gt;testbuton1

Llamamos A Una Funcion Llamada comprueba():

&lt;input type=&quot;radio&quot; name=&quot;test1&quot; value=&quot;test1&quot; onClick=&quot;comprueba(this) &quot;&gt;testbuton1

Esta Funcion Recibe Un Parametro, Le Pasamos &quot;this&quot; Para Que EL Sepa Que el Radio En El Que Dimos Click Es El Que Debe Quedar Checkado.

Ahora, Que Hace Esa Funcion¿?

Bien, Lo Que Hace Primero Es Quitar El Checkeo De Todos Los Radio Button, Osea, Si El Usuario Habia Chequeado Alguno De Los Dos Antes Los Des-Checkeamos:

function comprueba(esto)
{
test1.checked = false;
test.checked = false;

esto.checked = true;
}

Pero Entonces Eso No Es Todo, Ahora Necesitamos Que Checkee El Que Acabamos De Dar Click, Para Ello:

function comprueba(esto)
{
test1.checked = false;
test.checked = false;
esto.checked = true;
}

Espero Alla Quedado Mas Claro...

<CENTER><FONT COLOR=Black SIZE=2><I>"No Hay Cosas Imposibles, Solo Hombres Incapaces"</I></FONT></CENTER>
  #8 (permalink)  
Antiguo 21/03/2002, 11:39
 
Fecha de Ingreso: julio-2001
Ubicación: Internet
Mensajes: 1.690
Antigüedad: 23 años, 4 meses
Puntos: 1
Re: malditos frames

Hola!,

Otro Error: Puse Dos Radio Con El Nombre test1, Se Supone Que Uno Es test1 y otro test

<CENTER><FONT COLOR=Black SIZE=2><I>"No Hay Cosas Imposibles, Solo Hombres Incapaces"</I></FONT></CENTER>
  #9 (permalink)  
Antiguo 21/03/2002, 12:22
 
Fecha de Ingreso: junio-2001
Mensajes: 110
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: malditos frames

Bueno, nos vamos acercando al final jlmm . Tengo una noticia buena y una mala. Primero la mala: la opción que tú me propusiste es una opción buena, pero a mi no me vale puesto que yo no conozco el número de radio buttons que hay puesto que según lo he programado me aparece en pantalla un radio por cada registro tengo en la base de datos de mi web. Hasta ahí las malas; ahora un rayo de luz que me ha iluminado débilmente:
Si ponemos en una misma página dos radio button y un botón tipo &quot;button&quot; en el que hay un evento &quot;onclick&quot; que presenta por pantalla el contenido del botón pulsado, el resultado es &quot;undefined&quot;, pero si metemos todo en un form y el botón tipo &quot;button&quot; lo cambiamos a tipo &quot;submit&quot; con el mismo evento &quot;onclick&quot;, el resultado es inquietante: lo que me saca por pantalla el script es lo mismo &quot;undefined&quot;, pero en cambio en la barra de direcciones aparece lo siguiente: &quot;http://www.miweb.com/mipagina.asp?radiobuton=valorenesemomento&quot;

Bueno, te lo pongo más claro con código:
Cita:
mipagina.asp
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Untitled&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;form name=&quot;form1&quot;&gt;
&lt;input type=&quot;radio&quot; name=&quot;test11&quot; value=&quot;test1&quot;&gt;testbuton1
&lt;input type=&quot;radio&quot; name=&quot;test11&quot; value=&quot;test2&quot;&gt;testbuton1
&lt;input type=&quot;submit&quot; value=&quot;aceptar&quot; onclick=&quot;javascript:alert(test11.value);&quot ;&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
El resultado si pulso en el primer radio es el siguiente:
Cita:
El resultado del alert: Undefined
El resultado de la barra de direcciones del explorador: http://www.misitio.com/mipagina.asp?test11=test1
Luego funcionar, funciona, ahora que lo que pasa es que hay algo que no estoy haciendo bien y no tengo ni idea de qué puede ser.

Seguiré investigando, pero no me abandones please ;) .

Muchas gracias
FeReNZCy
  #10 (permalink)  
Antiguo 21/03/2002, 12:57
 
Fecha de Ingreso: julio-2001
Ubicación: Internet
Mensajes: 1.690
Antigüedad: 23 años, 4 meses
Puntos: 1
Re: malditos frames

Hola!,

Mira, Pues uhm... Creas Los Botones De Acuerdo Al numero De Registros¿? Entonces Puedes Crear La Funcion De Acuerdo Al Numero De Registros, Crearias Los Botones Con un Numero Al Final Segun El Registro, Digamos:

&lt;INPUT TYPE=&quot;radio&quot; NAME=&quot;testNUMERO_REGISTRO&quot;&gt;

Y Si Son 10 Registros Crearias 10 botones:

&lt;INPUT TYPE=&quot;radio&quot; NAME=&quot;test1&quot; onClick=&quot;comprobar(this)&quot;&gt;
&lt;INPUT TYPE=&quot;radio&quot; NAME=&quot;test2&quot; onClick=&quot;comprobar(this)&quot;&gt;
&lt;INPUT TYPE=&quot;radio&quot; NAME=&quot;test3&quot; onClick=&quot;comprobar(this)&quot;&gt;
&lt;INPUT TYPE=&quot;radio&quot; NAME=&quot;test4&quot; onClick=&quot;comprobar(this)&quot;&gt;
&lt;INPUT TYPE=&quot;radio&quot; NAME=&quot;test5&quot; onClick=&quot;comprobar(this)&quot;&gt;

Y Asi Sucesivamente, Luego En El Metodo Tambien Lo Creas Dinamicamente:

&lt;SCRIPT LANGUAGE=&quot;javascript&quot;&gt;

function comprobar(esto)
{
&lt;%
TANTOS testALGUN_NUMERO Com Registros Hallan
%&gt;
esto.checked = true;
}

&lt;/SCRIPT&gt;

Que Para El Ejemplo Crearia:
&lt;SCRIPT LANGUAGE=&quot;javascript&quot;&gt;

function comprobar(esto)
{
test1.checked = false;
test2.checked = false;
test3.checked = false;
test4.checked = false;
test5.checked = false;
test6.checked = false;
test7.checked = false;
test8.checked = false;
test9.checked = false;
test10.checked = false;
esto.checked = true;
}

&lt;/SCRIPT&gt;

Espero Haberme Explicado...

<CENTER><FONT COLOR=Black SIZE=2><I>"No Hay Cosas Imposibles, Solo Hombres Incapaces"</I></FONT></CENTER>
  #11 (permalink)  
Antiguo 22/03/2002, 10:16
 
Fecha de Ingreso: junio-2001
Mensajes: 110
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: malditos frames

Bueno amigo jlmm, ¡¡¡por fin he descubierto cuál era el problema real!!! :cantar: :cantar: .

El problema era que yo escribia la sentencia de la siguiente manera:
Cita:
alert(parent.left.test.value)
...y realmente lo que tenía que teclear era lo siguiente:
Cita:
alert(parent.left.test[indice].value
...donde índice era un número representando la posición que ocupa dentro de tu código. Un ejemplo representativo de esto es el siguiente:
Cita:
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Untitled&lt;/title&gt;
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot;&gt;
&lt;!--
function validar()
{
var i=0,pos=0;
for (i=0;i&lt;=1;i++)
{
if (parent.left.form1.test.checked)
{
pos=i;
}
}
alert(parent.left.form1.test[pos].value);
}
//--&gt;
&lt;/SCRIPT&gt;

&lt;/head&gt;

&lt;body&gt;
&lt;form name=&quot;form1&quot;&gt;
&lt;input type=&quot;radio&quot; name=&quot;test&quot; value=&quot;test1&quot;&gt;testbuton1
&lt;input type=&quot;radio&quot; name=&quot;test&quot; value=&quot;test2&quot;&gt;testbuton1
&lt;input type=&quot;Button&quot; name=&quot;boton&quot; value=&quot;aceptar&quot; onclick=&quot;validar()&quot;&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;


Este ejemplo lo que hace es que cuando tu pulsas un radio y luego pulsas el boton &quot;aceptar&quot;, te presenta por pantalla el valor del radio que se haya pulsado.

Era fácil, ¿no?
Hay un refrán que ilustra esto muy bien y es:
Cita:
Los árboles no me dejan ver el bosque
:) :) .

En fin creo que este mensaje se puede dar por cerrado, dándole las gracias al maravilloso jlmm que me ha estado ayudando desde el principio y esperando que sirva de ayuda para los que se encontraban en mi misma situación.

Bye
FeReNZCy

P.D.: ¡¡¡JODER CÓMO ME ENROLLO CUANDO ESTOY CONTENTO!!!
  #12 (permalink)  
Antiguo 22/03/2002, 10:23
 
Fecha de Ingreso: junio-2001
Mensajes: 110
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: malditos frames

Perdón pero me he fijado que en el ejemplo he escrito una linea mal. Es la que dice:
Cita:
if (paren.left.test.checked)
Es que justo despues del test y antes del punto va i(entre corchetes). Es que cuando tecleo i(entre corchetes) en el mensaje, al darle a &quot;contestar mensaje, me lo quita.

Ahora sí que bye
FeReNZCy
  #13 (permalink)  
Antiguo 22/03/2002, 10:27
 
Fecha de Ingreso: julio-2001
Ubicación: Internet
Mensajes: 1.690
Antigüedad: 23 años, 4 meses
Puntos: 1
Re: malditos frames

Hola!,

Se Aprenden Cosas Nuevas Cada Dia, Que Bien Que Hayas Conseguido Lo Que Querias.

<CENTER><FONT COLOR=Black SIZE=2><I>"No Hay Cosas Imposibles, Solo Hombres Incapaces"</I></FONT></CENTER>
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 01:14.