Foros del Web » Programando para Internet » Javascript »

meter el onchange dentro de javascript

Estas en el tema de meter el onchange dentro de javascript en el foro de Javascript en Foros del Web. Hola buen dia.. la verdad que me la pase buscando por internet y no encontre como hacer que desde el mismo javascript se le meta ...
  #1 (permalink)  
Antiguo 11/11/2008, 05:41
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
meter el onchange dentro de javascript

Hola buen dia.. la verdad que me la pase buscando por internet y no encontre como hacer que desde el mismo javascript se le meta el onchange y que cuando pase eso y el valor cambie haga un load de la pagina.


algo como..

combo.onchange=page.load

Alguien seria tan amable de guiarme un poco por fabor?
  #2 (permalink)  
Antiguo 11/11/2008, 05:47
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

¿Qué tal así?:
Código javascript:
Ver original
  1. select.onchange = function() {
  2.     location.href = location.href; /* Código para recargar */
  3. }
Cambié combo por select porque por alguna razón ese nombre no me gusta .

Si buscas por Javascript no invasivo, o por addEventListener encontrarás otras cosas interesantes.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 11/11/2008, 06:15
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

jojo, no puedo creerlo, FUNCIONA! el tema es que cuando cambio el valor del combo hace el reload pero se queda con el valor que estaba de antes :S.

creo que hay que meter algo que recuerde el valor seleccionado antes de hacer un load no?


Muchas gracias por responderme y agradecer tambien el hecho de haber respondido tan rapido. Si necesitas ayuda en algo por fabor cuenta conmigo.

Última edición por tanzer; 11/11/2008 a las 06:16 Razón: falto agradecer al maestro.
  #4 (permalink)  
Antiguo 11/11/2008, 06:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

mmm, una forma sería pasar por la URL un parámetro que indique cuál opción fue seleccionada y en el evento onload de la página volver a seleccionar ese elemento .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 11/11/2008, 06:36
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

mmm pero tengo que hacerlo en esa misma funcion...

estoy pensando algo como (lo escribo como a ti te gusta) dato=select.options.selected y poner arriba de esa funcion al cargar que select.value=dato
  #6 (permalink)  
Antiguo 11/11/2008, 06:39
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

Sí, y puedes hacer lo que te dije dentro de esa misma función. Por ejemplo:
Código javascript:
Ver original
  1. select.onchange = function() {
  2.    location.href = location.href + "?selected=" + this.selectedIndex;
  3. }
En este caso, solo tendrás que recuperar ese valor en el evento onload. Si buscas en este foro, encontrarás ejemplos de cómo recuperar ese valor de la URL.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 11/11/2008, 07:19
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

mmmm no me funciona.. ademas intente meter algo como esto

var pos=datos.cbo.selectedindex;
var lugar= datos.cbo.options[pos].value;

pero con eso ya directamente ni carga xD.
  #8 (permalink)  
Antiguo 11/11/2008, 07:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

Claro, no va a funcionar si no recuperas el valor de la URL .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 11/11/2008, 07:38
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

mmm creo que estoy un poco perdido.. necesito recuperar el valor del combo dentro de la funcion onchange y que despues en el onload muestre ese valor y no esa opcion?
  #10 (permalink)  
Antiguo 11/11/2008, 07:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

No, no es que "muestre ese valor y no esa opcion" en el onload, simplemente recupera la opción anteriormente seleccionado y vuelve a seleccionarla :
Código javascript:
Ver original
  1. window.onload = function() {
  2.      select.selectedIndex = opcion_seleccionada; /* Lógicamente, opcion_seleccionada deberás tomar de la URL */
  3. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 11/11/2008, 08:13
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

mmm entonces en el script onload tengo esto

select.selectedIndex = opcion_seleccionada;

select.onchange = function() { opcion_selectionada=select.selected location.href = location.href + "?selected=" + this.selectedIndex;}


no me funciona xD! esta bien eso? cuando cambie el combo hace la funcion que la opcion selecionada sea igual a la selecion del combo... hace un load de vuelta y la seleccion del combo es igual a la opcion selecionada.
  #12 (permalink)  
Antiguo 11/11/2008, 08:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

No, está mál. Mira este ejemplo de las FAQ's sobre cómo recoger valores del a URL:
http://www.forosdelweb.com/684336-post183.html
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 11/11/2008, 09:38
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

mmm pero que tiene que ver el + el & y demas? no endiendo muy bien ese codigo :S.

lo de location.href funciona.. solo hay que hacer que tome le valor cuando clikeas en otro valor del combo y aparezca onload con ese valor selecionado.

No me esta saliendo.. me estoy volviendo chango!

normalmente no rezo pero si estas ahi, por favor salvame, David el Grande.
  #14 (permalink)  
Antiguo 11/11/2008, 09:49
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

A ver, inserté algunos comentarios para que entiendas de qué va el código:
Código javascript:
Ver original
  1. /* Con split obtenemos las partes de una cadena separadas por un separador
  2. En este caso ?. O sea, si tenemos la URL [url]http://.../pagina.html?valor=prueba[/url]
  3. */
  4. nombre=location.href.split("?");
  5. /* El resultado sería:
  6. Obtendríamos:
  7. nombre[0] = "http://.../pagina.html";
  8. nombre[1] = "valor=prueba";
  9. */
  10.  
  11. /* Ahora, son split nuevamente separamos "valor" de "prueba" */
  12. valor=nombre[1].split("=");
  13. /* Resultado:
  14. valor[0] = "valor";
  15. valor[1] = "prueba";
  16. */
  17.  
  18. /* Con lo que finalmente en valor[1] ya tenemos el valor deseado.
  19. Modifiqué el código de KarlanKas ya que en este caso es un único valor.
  20. Otra cosa, para no producir errores, busca primero con strpos el carácter ?
  21. en la URL antes de tratar de obtener los datos */

__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #15 (permalink)  
Antiguo 11/11/2008, 10:06
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

gracias por explicarme pero creo que esto no me sirve... porque la pagina solo graba los datos si se pone guardar. osea que tengo que hacer todo mediante script.
osea que si el combo se llama vehiculos y adentro tengo auto, moto y camion. por defecto aparece auto y cuando cambio a moto deberia hacer un onload de la pagina y que figure moto.
  #16 (permalink)  
Antiguo 11/11/2008, 10:08
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

¿Seguro que entendiste lo que traté de explicar? .

Fíjate, en el evento onchange del select recargas la página y le pasas un dato por la URL, y luego con el código del mensaje anterior obtienes ese dato de la URL y seleccionas la opción correspondiente en el select.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #17 (permalink)  
Antiguo 11/11/2008, 10:27
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

jajajaja me parece que no entendi muy bien pero igualmente yo no quiero obtener la url de la pagina

la cosa es asi. .tengo 3 combobox.. uno automaticamente hace un onload y cuando hace el onload aparece como yo lo seleccione.

quiero hacer esto mismo en los otros dos combobox.
estoy provando todo esto en uno y cuando clikeo en este aunque lo modifique sigue apareciendo como antes incluso aunque le cambie valor al tercero este vuelve a ponerse el valor de antes :S

me parece qeu el error esta en el location.href


www.cuelgalo.com/viewer.php?id=1226420789_untitled.JPG


ahi la puse la screen no la puse para ver porque necesito mas antiguedad
  #18 (permalink)  
Antiguo 11/11/2008, 10:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

Mi pregunta es, ¿por qué recargas la página?.

Porque puedes pasar los valores de los 3 select por la URL y obtenerlos nuevamente, pero no le veo sentido.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #19 (permalink)  
Antiguo 11/11/2008, 10:34
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

es porque segun cambies o no el primer o segundo combobox hace que se oculte o se muestre otros combobox mas abajo. por ende necesito hacer que cambies el primero o segundo haga un onload. para corroborar si es o no es el valor para ocultar o no ocultar los otros campos.
  #20 (permalink)  
Antiguo 11/11/2008, 10:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

¿Y no puedes comprobarlos en el evento onchange en vez de en el onload? . ¿O es que estás comprobando con PHP?. ¿Por qué no usas AJAX?.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #21 (permalink)  
Antiguo 11/11/2008, 10:49
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

puedo comprobarlo en donde sea pero no se como xD! y tengo que utilizar si o si javascript, y no debo tocar nada afuera de mi script
  #22 (permalink)  
Antiguo 11/11/2008, 11:00
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

¿Podrías poner cómo lo estás haciendo ahora?. Me refiero a la comprobación en el onload.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #23 (permalink)  
Antiguo 11/11/2008, 11:13
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

probe muchas cosas pero creo que es mejor volver al principio

select.onchange = function() { location.href = location.href + "?selected=" + this.selectedIndex;}

esto funcionaba pero tiraba siempre el mismo valor del combo, aqui antes del location hay que hacerle algo raro.
  #24 (permalink)  
Antiguo 11/11/2008, 11:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: meter el onchange dentro de javascript

No, a lo que me refiero, es para qué estás haciendo onload, dijiste que era para ocultar otros campos, pero, ¿no puedes hacer eso directamente en el onchange en vez de recargar la página?. En síntesis, la pregunta es, ¿cómo estás haciendo ahora para comprobar que un elemento deba ocultarse o no al cargar la página?.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #25 (permalink)  
Antiguo 11/11/2008, 11:22
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

pues modifico los combo a gusto y despues en el tercer combo lo tengo que cambiar de valor para que haga un load y verifique que tenga que mostrar o no (ya que todo lo de mostrar o no mostrar eesta en el onload)
  #26 (permalink)  
Antiguo 11/11/2008, 11:26
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: meter el onchange dentro de javascript

¿Y por qué no transfieres eso del onload al onchange del select?. Así no necesitas recargar la página.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #27 (permalink)  
Antiguo 11/11/2008, 12:00
 
Fecha de Ingreso: octubre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: meter el onchange dentro de javascript

o dios me quiero cortar las bolas!!!!! me salio el primer combobox, solo falta hacer el otro.

el tema es que si metia el codigo en el onchange aparecia oculto.. entonces tengo que copiar el codigo 2 veces mas. uno en el onload y otros dos en los dos combobox.

vamos a ver si me sale n_n.




VAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

fue un error de logica o de intentar hacer algo simple que termino siendo complejo xD.

muchas gracias DAVID! por ayudarme.

Última edición por tanzer; 11/11/2008 a las 12:15 Razón: SALIOOOOOOOOOOOOOOO
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 19:22.