Ahora, debajo de ese select tengo un botón que añade otro select exactamente igual debajo del primero (y así sucesivamente). Y aquí es donde viene el problema, el código javascript parece que "pasa" de escuchar a estos nuevos select creados dinámicamente.. Solo escucha los cambios en el primer select creado directamente en el HTML. Os enseño el código a ver si podeis ayudarme. Gracias!!
Codigo HTML
Código:
Javascript para detectar cuando selecciono otra opcion<div class="container-fluid"> <section class="row main"> <article class="col-xs-12"> <form class="form-inline" action="asistente_enviar.php" method="post"> <div id="cajonprincipal"> <div id="cajon1" class="form-group"> <input id="pregunta1" class="form-control" type="text" placeholder="¿Vas a?"> <select id="select" class="form-control" name="select1" > <option value="0" selected>Si/No</option> <option value="2">2 opciones a elegir</option> <option value="3">3 opciones a elegir</option> </select> </div> </div> <button class="form-control" type="button" id="botonmas" onclick="addFields()">Añadir</button> <input class="form-control btn btn-primary" type="submit" value="Terminar y rellenar"/> </form> </article> </section> </div>
Código:
Javascript para añadir input y select desde el boton añadir $('select#select').on('change',function(){
var valor = $(this).val();
var idaux = $(this).parent().attr("id");
//alert(idaux);
var container = document.getElementById();
for(i=0;i<valor;i++){
var input = document.createElement("input");
input.id = "Opcion"+(i+1);
input.className = "form-control";
input.type = "text";
input.placeholder = "Editar opcion"+(i+1);
container.appendChild(input);
}
});
Código:
n=1;
function addFields(){
n++;
var cajon = document.createElement("div");
cajon.id = "cajon"+n;
cajon.className = "form-group";
cajonprincipal.appendChild(cajon);
var input = document.createElement("input");
input.id = "pregunta"+n;
input.className = "form-control";
input.type = "text";
input.placeholder = "Editar pregunta "+n;
cajon.appendChild(input);
var select = document.createElement("select");
select.id="select";
select.className = "form-control";
select.name = "select";
cajon.appendChild(select);
var op1 = document.createElement("option");
op1.value = ("0");
op1.text = ("Si/No");
select.appendChild(op1);
var op2 = document.createElement("option");
op2.value = ("2");
op2.text = ("2 opciones a elegir");
op2.selected = "selected";
select.appendChild(op2);
var op3 = document.createElement("option");
op3.value = ("3");
op3.text = ("3 opciones a elegir");
select.appendChild(op3);
}



