Foros del Web » Programando para Internet » Jquery »

.ready y .change al mismo tiempo??

Estas en el tema de .ready y .change al mismo tiempo?? en el foro de Jquery en Foros del Web. Hola tengo dos select anidados, y el siguiente script. Cuando entro en la página coge $("#area").ready y el select #actividad se actualiza. Si pongo $("#area").change ...
  #1 (permalink)  
Antiguo 12/06/2013, 03:53
 
Fecha de Ingreso: abril-2011
Mensajes: 7
Antigüedad: 13 años, 7 meses
Puntos: 0
.ready y .change al mismo tiempo??

Hola tengo dos select anidados, y el siguiente script.
Cuando entro en la página coge $("#area").ready y el select #actividad se actualiza.
Si pongo $("#area").change #actividad se actualiza al cambiar el valor de #area

Lo que yo quiero es unir esas dos cosas, es decir, actualizar #actividad tanto al cargar como al cambiar ¿como puedo hacer esto??

<script language="javascript">
$(document).ready(function(){
$("#area").ready(function(){
$("#area option:selected").each(function () {
elegido=$(this).val();
actividadSeleccionada= document.getElementById("actividadSeleccionada").v alue;
$.post("area.php", { elegido: elegido, actividadSeleccionada:actividadSeleccionada}, function(data){
$("#actividad").html(data);
});
});

});
});

</script>
  #2 (permalink)  
Antiguo 12/06/2013, 10:07
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 16 años, 5 meses
Puntos: 12
Mensaje Respuesta: .ready y .change al mismo tiempo??

con una función, le pasas como parámetro el #area reúnes la lógica dentro de la función.

no se que tan necesario sea esto "$("#area").ready(function(){}" tengo mis dudas, estoy casi seguro que podrías quitar eso y dejar el resto. Lo otro es si lo que quieres es recoger el área y cargar las actividades el código se podría simplificar una más.

Es la idea general.
Código:
function cargarActividades(  p_area, p_actividad ){

$.get("area.php",
  {elegido :  p_area,   actividad: p_actividad},
  function(datos){
      $("#actividad").html(data); 
  }); // fin get
}

$(document).ready(function(){ 

   // Llamar la funcion al cargar la pagina
   cargarActividades( $('#area').val(), $('#actividadSeleccionada').val() );

  // Cargar al cambiar de area
  $('#area').change(function(){
    var areaSel = $(this).val();
    cargarActividades( areaSel, $('#actividadSeleccionada').val() );
  });
}); // fin ready
  #3 (permalink)  
Antiguo 13/06/2013, 02:22
 
Fecha de Ingreso: abril-2011
Mensajes: 7
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: .ready y .change al mismo tiempo??

Gracias Rosencrantz,

efectivamente "$("#area").ready(function(){} no sirve para nada, lo he quitado y funciona igual.
Pero no consigo tampoco resolverlo con la funcion... ¿Lo meto todo en el script??

Lo que busco es cargar actividades al cargar la página, esto lo consigo. Pero quiero que tambien se carguen al seleccionar una opcion distinta en area, también lo consigo con .change, pero entonces al cargar la página actividades se queda en blanco hasta que no seleccionas un area...

Espero explicarme bien.
  #4 (permalink)  
Antiguo 13/06/2013, 07:27
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 16 años, 5 meses
Puntos: 12
Respuesta: .ready y .change al mismo tiempo??

Al cargar la pagina debes tener cargados los elementos

$('#area').val() => primer elemento del select
$('#actividadSeleccionada').val() => primera actividad del área cargada anteriormente

Puedes guardar actividadSeleccionada en un hidden, o modificar el script php para que si la actividad esta vacía cargue la primera y que corresponda al area.

Saludos.

Etiquetas: html, javascript, php, select
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 14:09.