Mi enfoque es un poco diferente.
En lugar de modificar selecciona durante la clonación, sólo estoy observando cada select
en la página de change
evento, y luego, si se cambia el valor añado necesaria selected
atributo seleccionado a <option>
manera que se convierta <option selected="selected">
. Como la selección ahora está marcada en el marcado <option>
, se aprobará cuando lo haga .clone()
.
El único código que necesita:
//when ANY select on page changes its value
$(document).on("change", "select", function(){
var val = $(this).val(); //get new value
//find selected option
$("option", this).removeAttr("selected").filter(function(){
return $(this).attr("value") == val;
}).first().attr("selected", "selected"); //add selected attribute to selected option
});
Y ahora, puede copiar seleccionar la forma que desee y va a tener su valor copiado también.
$("#my-select").clone(); //will have selected value copied
creo que esta solución es menos personalizada por lo que no tiene que preocuparse si su código se romperá si se le modifique algo más tarde.
Si no desea que se aplica a todos los seleccione en la página, puede cambiar el selector en la primera línea como:
$(document).on("change", "select.select-to-watch", function(){
Si utilizo el val() en el objeto seleccione la prueba falla, así: \t de prueba ("clon debe mantener los valores de selecto", function() { \t \t var seleccionar = $ ("
Eso es bastante extraño, porque esto funciona para mí en IE 6/7, Firefox 3 y Opera 9. ¿Quizás algo no funciona con tu función 'iguales'? alert (eval ('select = $ ("