Foros del Web » Programando para Internet » Javascript »

Problema con llamada a función desde onChange...

Estas en el tema de Problema con llamada a función desde onChange... en el foro de Javascript en Foros del Web. Buenas amigos: Tengo un problema en un <select> con el onChange, y es que creo que no salta la función que le indico. Código: <script> ...
  #1 (permalink)  
Antiguo 28/03/2007, 01:35
 
Fecha de Ingreso: marzo-2007
Mensajes: 32
Antigüedad: 17 años, 1 mes
Puntos: 0
Problema con llamada a función desde onChange...

Buenas amigos:

Tengo un problema en un <select> con el onChange, y es que creo que no salta la función que le indico.

Código:
  <script>
  function cambiarMes() {
    setCookie('mes',document.f1[0].mes.value);
    <?php echo "hola" ?>
  }
  </script>

  <select size="1" name="mes" class="m1" onChange="cambiarMes()">
  <option value="0" selected>Seleccione...
  <option value="1">Enero
  <option value="2">Febrero
  </select>
Como les digo, este código no me produce nada, y no me escribe ni tan siquiera el "hola", alguien sabe qué estoy haciendo mal ?

Muchas gracias.
  #2 (permalink)  
Antiguo 28/03/2007, 02:56
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Problema con llamada a función desde onChange...

Hola:

Con javascript no puedes usar instrucciones php...

Para probar código prueba mejor con una alerta.
alert("hola")

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 28/03/2007, 04:06
 
Fecha de Ingreso: marzo-2007
Mensajes: 32
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Problema con llamada a función desde onChange...

Muchas gracias Caricatos por tu aclaración.

Cambié el

<?php echo "hola"; ?>

por alert("hola");

y sigue sin hacer nada cuando cambio de mes, alguna sugerencia más ?

Muchas gracias.
  #4 (permalink)  
Antiguo 28/03/2007, 04:24
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Problema con llamada a función desde onChange...

Hola:

Es que la forma de poner cookies parece que es la de php y no javascript... creo que se pone así:

function cambiarMes() {
document.cookie = 'mes=' + document.f1[0].mes.value;
alert("hola");
}

Y aunque no te provoque error, es mejor que te acistumbres a poner los eventos en minúsculas...
onchange="cambiarMes()"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 30/03/2007, 02:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 32
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Problema con llamada a función desde onChange...

Bueno, la función setCookie que uso es:

function setCookie(name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
((path == null) ? "" : "; path=" + path) +
((domain == null) ? "" : "; domain=" + domain) +
((secure == null) ? "" : "; secure");
}

y está en JavaScript.

De todas formas, lo que me ocurre es que no salta el alert, por lo que supongo que no se llega a ejecutar mi función cambiarMes().

Alguna idea más?

Muchas gracias.
  #6 (permalink)  
Antiguo 03/04/2007, 03:49
 
Fecha de Ingreso: marzo-2007
Mensajes: 32
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Problema con llamada a función desde onChange...

Bueno, finalmente di con el problema:

En lugar de usar document.f1[0] o document.forms[0] usé this.form, y se solucionó el problema:

Código:
  function cambiarMes(form) {  
	setCookie('mes',form.mes.value); // Función implementada previamente.
    document.location = ""; // Para recargar la web
  }
Código:
    <SELECT SIZE="1" NAME="mes" CLASS="m1" onChange="cambiarMes(this.form)">
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 19:04.