Foros del Web » Programando para Internet » Javascript »

obtener el value de un objeto en un iframe

Estas en el tema de obtener el value de un objeto en un iframe en el foro de Javascript en Foros del Web. Descripción de la estructura: alta.asp: - Un formulario (action=mun.asp target=mun) con un <select> - un iframe (name=mun) - otro formulario con un hidden y otros ...
  #1 (permalink)  
Antiguo 20/11/2003, 13:49
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 11 meses
Puntos: 535
obtener el value de un objeto en un iframe

Descripción de la estructura:

alta.asp:
- Un formulario (action=mun.asp target=mun) con un <select>
- un iframe (name=mun)
- otro formulario con un hidden y otros campos

mun.asp:
- un formulario con un select (que se rellena según lo seleccionado en la página que lo ifreimea: alta.asp)


Bien, podría haber usado una de esas lista dependientes o enlazadas.. pero la verdad que es mucha info para hacerlo de esa manera.. así que me decidí por esta.

la pregunta es:

Cómo obtengo en el hidden de alta.asp el value del select que se encuentra dentro del iframe llamado mun?

muchas gracias
  #2 (permalink)  
Antiguo 20/11/2003, 14:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Hola dazuaga:

Si quieres que se actualice usando el select del iframe (en este caso no importaría el nombre del frame), debes referenciar al "parent"... Ahora, si quieres actualizarlo desde la página principal, referenciarías al iframe mediante window.mun. y te recomiendo que uses funciones. Hice una prueba con explorer que cambia un campo de texto con el onchange del select...

<html>
<head>
<title>
IFrames
</title>
<script>
function actualizar(x) {
document.forms.b.a.value = x;
}
</script>
</head>
<body>

<iframe name=mun src="iframe2.html" border="1">
</iframe>
<form name=b>
<input type=text name=a>
</form>
</body>
</html>

y el iframe "iframe2.html":

<html>
<body>

<form name=x>
<select name=y onchange=parent.actualizar(this.value)>
<option value=hola>Hola</option>
<option value=que>que</option>
<option value=tal>tal</option>
</select>
</form>
</body>
</html>

Espero que te sirva... y si quieres usar otro sistema dinos cuál...

Saludos
  #3 (permalink)  
Antiguo 20/11/2003, 15:15
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 11 meses
Puntos: 535
Exelente, caricatos.

Muchas gracia
  #4 (permalink)  
Antiguo 20/11/2003, 15:46
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 11 meses
Puntos: 535
ya que estamos, cómo haría para que el botón de submit esté disabled mientras que los 3 primeros caracteres (6 en total) de un textbox sean distintos que los únicos tres de otro?

es decir que quede disabled si en uno hay BUE y el otro es distinto de BUE??? (donde cada ? es un número)

aclarar que el "BUE" es sólo un ejemplo y no es un literal ya que ese valor depende de la provincia seleccionada y el otro (el de 6 caracteres) depende del municipio seleccionado de dicha provincia

lo que quiero prevenir es que se pueda hacer un submit del formulario con sólo seleccionar la provincia y sin seleccionar un municipio (o que el municipio actual sea el de una selección anterior de provincia/municipio y que no coincida con la última provincia seleccionada al corregir sólo la selección de esta... me marié xD)
__________________
...___...
  #5 (permalink)  
Antiguo 20/11/2003, 17:15
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Hola otra vez:

La verdad es que yo también me mareé un poco tratando de enterarme de lo que necesitas , pero te daré algunas pistas, a ver si sale algo:

La longitud de las cadenas se sabe con length (supongo que lo sabes), y se puede obtener cada carácter con laCadena.charAt(n)... donde n es el índice del carácter (empezando por cero "0")

Por último la habilitación de los botones se consigue con elBoton.disabled = true/false...

Una aproximación sería:

function habilitar() {
var c1 = document.forms.elForm.elInputPrimero.value;
var c2 = document.forms.elForm.elInputSegundo.value;
if (c1.charAt(0) != c2.charAt(0) &&
c1.charAt(1) != c2.charAt(1) &&
c1.charAt(2) != c2.charAt(2))
document.forms.elForm.elSubmit.disabled = true;
else
document.forms.elForm.elSubmit.disabled = false;
}

Y llamar a la función desde el evento onkeypress de cada input.

Saludos
  #6 (permalink)  
Antiguo 20/11/2003, 18:17
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 11 meses
Puntos: 535
ok, mañana lo pruebo y te comento (y de paso explico un poco mejor y tal vez con imágenes que es lo que quiero hacer porque la verdad que no quedó para nada claro jeje)

Lo que si, preguntarte una cosa: Que cada vez que se precione una tecla en cada imput, textarea, etc; se llame a la función y compruebe esto... no sería como demaciado pesado?

mañana en el trabajo lo pruebo y te digo qué tal me fue.

saludos
__________________
...___...
  #7 (permalink)  
Antiguo 20/11/2003, 18:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Hola otra vez:

Bueno, mañana me iré por unos días, pero en este foro hay mucha gente que seguramente podrán ayudarte mejor que yo (sino tendrás que tener paciencia)

Estoy de acuerdo en que es algo pesado, pero según me pareció entender la pregunta, hay que chequear cada pulsación (y en ese caso no conozco otra forma de hacerlo). Además, en el caso que planteas solo se tendrían que chequear 2 inputs (ya te dije que no sé si me enteré bien de tu planteamiento).

Bueno... suerte
  #8 (permalink)  
Antiguo 21/11/2003, 11:50
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 11 meses
Puntos: 535
Veamos.. la función me funcionó muy bien al onkeypress (además, entendiste perfectamente lo que ni yo supe si había explicado bien )

Pero intenté cambiarla al onmouseover del botón de submit y lo pone disabled cuando corresponde más no lo pone a false en el mismo evento cuando con el onkeypress si lo hace

Es decir... si en el primer hidden existe BUE y en el segundo algo distinto de BUE### y paso por encima del botón, este se pone disabled... pero cuando corrijo y en el primero existe BUE y en el segundo algún BUE### y vuelvo a pasar sobre el botón, este no se habilita como correspondería (y como si ocurre al onkeypress)


Igual, me parece que sería mejor cambiar un poco la lógica...
Que al onsubmit haga esta comprobación y en caso de no coincidir, alerte "Ha seleccionado un municipio que no corresponde a la provincia actual"

Bueno caricatos, esperaré a otro que me pueda ayudar o lo continuamos a tu regreso.

Que la pases bien.
Saludos
  #9 (permalink)  
Antiguo 24/11/2003, 13:55
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Ya estoy de vuelta...

La verdad es que leí el mensaje y no entiendo lo que puede pasar con el evento "onmouseover"

También pensé que una mejora podría ser usar el evento onchange que en w3.org, he visto que va en los inputs, selects y textareas, porque se puede hacer un copy & paste sin usar el teclado.

Cuando me pasa algo así, procuro usar algún elemento delator o chivato para enterarme como un alert, o la barra de estado o algún otro input, pero muchas veces termino haciendo las cosas fáciles.

Si tienes algún link para verlo, tal vez pueda ayudarte mejor.

Saludos
  #10 (permalink)  
Antiguo 24/11/2003, 15:14
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 11 meses
Puntos: 535
mmm... si, dejame que veo de adaptarlo para que funcione en brinkster y te paso la URL
__________________
...___...
  #11 (permalink)  
Antiguo 24/11/2003, 16:17
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 11 meses
Puntos: 535
ok, la URL es esta

Te explico básicamente como funcionaría ya que ahora veo que, o hago dos formularios o necesito otra validación:

Las demandas son municipales en un alto porcentaje... pero pueden ser de otros organismos como se aprecia en "Tipo Demandante"

Entonces, predeterminadamente se pone la demanda como "Municipal"

En el caso de no ser una demanda municipal, se guarda en el ID de provincia e ID de municipio el texto "NOM" (los textbox ID_PCIA e ID_MUNICIP que luego serán hidden). Asimismo, al entrar, esos textbox aparecen con el value "NOM" ya que no se ha seleccionado ninguna provincia ni ningún municipio aún.

Bien. Si la demanda es municipal, entonces el operador selecciona una provincia. Cuando esto ocurre, se pone el ID de la provincia en el textbox "ID_PCIA". En este punto, si pasás sobre el botón de "guardar" ubicado al final de la página, este se "disablea" correctamente ya que no se ha elegido ningún municipio.

Ahora, al seleccionar un municipio, su ID pasa al textbox "ID_MUNICIP" pero al volver a pasar sobre el botón de guardar con el mouse, este no se habilita como debería (aunque haciéndole un click sin soltar y moviendo el mouse para otro lado fuera del botón, este sí se habilita -al menos en mi explorer!-)



Lo concreto es que las validaciones deberían ser:

1- Si "Tipo Demandante" <> "municipio", entonces "ID_PCIA" e "ID_MUNICIP" = "NOM" (esto se haría en el onchange de tipo demandante, creo, y me parece que lo puedo hacer yo tranquilamente)
2- Si los tres primeros caracteres de "ID_MUNICIP" son diferentes a los tres de "ID_PCIA", entonces no permitir el submit y alertar sobre ello.


Bueno, caricatos, esa es más o menos la historia.
La verdad que me da por las pelotas tener que molestar para que otro me haga el trabajo, pero lamentablemente no sé javascript (ya me voy a tener que meter en ello... por cierto... sabés de algún buen tuto en castellano etsplicado con powerpoint's y plastilina? )

Gracias por tu tiempo
  #12 (permalink)  
Antiguo 24/11/2003, 18:04
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Hola otra vez:

La verdad es que el planteamiento resumido del final del mensaje es más fácil de entender que todo lo demás

Después de "Releer" el mensaje, pienso que podrías tener inhabilitado (incluso oculto) los identificadores de provincia y municipio cuando no sea municipio el demandante.

Si los tenés en una base de datos y se seleccionan con el select, también se podrían poner con readonly o disabled (provincia y municipio) y en ese caso se podría chequear el selectedIndex de cada select

Simplificando... voy a decirte la lógica que yo usaría (pero sinceramente no me considero "especialista en formularios")...

El campo tipo demandante (o como lo tengas), lo pondría con un radio y si fuese "municipal" habilitaría los select de provincia y municipio (creo que los cargas desde una base de datos)

Si los campos provincia y municipio los puedes controlar con los select, podrías hacerlo más o menos así:

Si se modifica la provincia, poner "disabled" el botón submit, ya que o se ha puesto por primera vez, o se ha cambiado, así que lo que tuviera como municipio no serviría (y se inicializaría)... y si se modifica el municipio ya podría habilitarse, aunque debería chequearse si el "selectedIndex" fuese mayor que "0" (reservado para el mensaje de "seleccione..."

El problema para este sistema es que he visto que haces un submit para actualizar el campo "municipio" así que lo más importante es la inicialización que veo que es asp, y no tengo duda que lo controlas.

De todos modos, este es otro planteamiento que no sé si te servirá. Y, por cierto, no sabría recomendarte nada de javascript ya que es algo "jodido" porque cada navegador inventa sus cosas y algo bueno para explorer puede ser muy malo para los otros, pero por aquí hay mucha buena gente que te sabrá orientar cuando estés con problemas.

Saludos
  #13 (permalink)  
Antiguo 24/11/2003, 18:27
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 11 meses
Puntos: 535
bueno, gracias.
mañana en el el trabajo voy a ver si me salen estas cositas que me aconcejás y no dudes que te voy a volver a molestar en caso de no salir :D

saludos
__________________
...___...
  #14 (permalink)  
Antiguo 26/11/2003, 15:00
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 11 meses
Puntos: 535
Cita:
pienso que podrías tener inhabilitado (incluso oculto) los identificadores de provincia y municipio cuando no sea municipio el demandante
Esto ya está (además de otras cosillas)

Código:
function NOM(){
if (demanda.Demandante.value != 'MUN') {
document.demanda.ID_Provinc_HIDDEN.value = 'NOM'
document.demanda.ID_Mun_HIDDEN.value = 'NOM'
document.demanda.Institucion.value = ''
//document.Pcias.ID_Provinc[0].selected = true
//mun.Municipios.ID_Muni[0].selected = true
document.Pcias.ID_Provinc.disabled = true
mun.Municipios.ID_Muni.disabled = true
}
else
{
document.Pcias.ID_Provinc.disabled = false
mun.Municipios.ID_Muni.disabled = false
document.demanda.ID_Provinc_HIDDEN.value = document.Pcias.ID_Provinc.value
document.demanda.ID_Mun_HIDDEN.value = mun.Municipios.ID_Muni.value
document.demanda.Institucion.value = 'Municipalidad'
}
}//NOM

Ahora estoy medio complicado con otra función como se ve aquí y que es parte de lo mismo.

Creo que entre lo del otro mensaje y con la que ya tengo de éste, terminaría con las validaciones.

Muchas gracias!
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:31.