2010-10-05 13 views
14

¿Cómo puedo clonar la lista desplegable (cuadro combinado) con la opción seleccionada?copiar/Clonar la lista desplegable con la opción seleccionada en jquery

el método jquery .clone no está funcionando en firefox para la opción seleccionada.

Tengo un div con controles diferentes. Tengo que copiar toda div a una variable algo como esto

var $orginalDiv = $('#myDiv'); 
var $clonedDiv = $orginalDiv.clone(); 

$clonedDiv.find('select').each(function() { 


....Something do here for assigning selected options from original div .. 

      }); 

Déjame saber cómo podemos lograr que se haga y que debe ser trabajado en Firefox.

+0

tal vez esté buscando este, [el clon de jquery no copia las propiedades de dom seleccionadas] (http://stackoverflow.com/questions/3776270/jquery-clone-doesnt-copy-select-dom-properties) – Reigel

+0

@Reigel esto es para control único, pero necesito una lista desplegable múltiple. ¿cómo puedo asignar val en el código de la pregunta? – Brij

Respuesta

17
var $orginalDiv = $('#myDiv'); 
var $clonedDiv = $orginalDiv.clone(); 

//get original selects into a jq object 
var $originalSelects = $orginalDiv.find('select'); 

$clonedDiv.find('select').each(function(index, item) { 

    //set new select to value of old select 
    $(item).val($originalSelects.eq(index).val()); 

}); 

Pruébalo here en jsFiddle

+0

Obteniendo error: $ originalSelects no está definido – Brij

+0

@brzdotnet sorry typo, corregido – redsquare

+0

+1 No estaba seguro de si el índice funcionaría si 'select' no son hermanos, pero [funciona] (http: // jsfiddle. net/kvzam /)! – Reigel

0

se puede implementar un botón para clonar los menús desplegables?

+0

Sí, simplemente use '$ (menú desplegable) .clone()' en el controlador de clic del botón. –

+0

cómo cambiar el nombre y la propiedad de identificación del menú desplegable clonado.i usé $ (menú desplegable) .clone(). Attr ("nombre", "Habilidad"); pero no está funcionando :( – user3217843

0

Hola, tienes un customedropdown con alguna máscara de imagen, entonces el clon simple no mostrará un valor seleccionado, para eso tienes que asignar primero un valor seleccionado de un menú desplegable al segundo menú desplegable, y luego llamar a un evento de cambio implícitamente como sigue . $ ('select [id * = cstate]'). Val ($ ("select [id * = state]"). Val()); $ ("# cstate"). Change();

Cuestiones relacionadas