Tengo un <select> con las opciones del 1 al 5, depende de lo seleccionado se crearan dicho numero de <select> mas.
Mi problema surge al intentar añadirles eventos a estos <select> creados en ejecucion. Todos los eventos se crean pero al mostrar por pantalla la opción señalada mediante alert() todos me muestran la opción señalada del ultimo select creado. No se si me explico.
Os dejo un boceto de mi código comentado.
Código Javascript:
Ver original
$(document).ready(function(){ $("#menus").change(function () { $("#contenido").html(" "); $num = 0; $htmltext =""; //#menu: <select> con numeros del 1 al 5 a elegir //#contenido: capa en la que metere HTML dependiendo //$num: guarda la opcion seleccionada //$htmltext: guarda el codigo html que despues metere en #contenido $("#menus option:selected").each(function () { $num = $(this).text(); }); /*función para recoger la seleccion nose si habra otra forma mas simple la recogí de un ejemplo en el que había multiselect*/ for($i=1; $i <= $num; $i++){ $htmltext+='<select id="submenu'+$i+'" name="submenus" ><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option></select>'; } //Bucle que crea tantos select como haya elegido el usuario $("#contenido").html($htmltext); /*Meto el html en la capa para que existan los nuevos select y poderles crear su correspondiente evento*/ for($i=1; $i<= $num; $i++){ $id="#submenu"+$i; $($id).change(function () { //Añado evento $($id+" option:selected").each(function () { $num2 = $(this).text(); }); //Funcion identica a la de arriva para recojer opcion seleccionada alert($num2); //Mensaje para ver si funciona bien que no lo hace }); } //Bucle para crearle eventos a los diferentes select //$id Guarda la id del select al que se le va a añadir la funcion }); });
Gracias por adelantado por molestaros en leer mi mensaje aunque no puedan resolver mi duda.
Saludos.