2012-02-13 14 views
6

Estoy usando el widget jquery multiselect. Me gustaría desmarcar todo si todos ellos fueron verificados manualmente. Tengo un código de muestra en JSFiddle--> Codecómo deseleccionar todas las opciones en el widget de selección múltiple

Esto no funciona. Cuando las opciones de selección se seleccionan manualmente, verifique que no haya opciones sin marcar en seleccionar me da 1 (al hacer clic en la última opción) la primera vez. así que compruebo si $this.children("option").not('[selected]').length es 1 y ui.checked y llamando al uncheckAll pero después de que se comporta correctamente el código si $this.children("option").not('[selected]').length me da 0 al seleccionar el final.

Me pregunto qué está pasando.

+1

no tengo idea de lo que están pidiendo, y al marcar/desmarcar todo en el violín me da buenos resultados? –

+0

intente seleccionarlos todos manualmente. el evento multiselectclick debería activarse. si se seleccionan todas las opciones, entonces debería desmarcar todo lo que no está sucediendo – coool

+0

me funciona si las controlo manualmente – Vigrond

Respuesta

12

bien hasta aquí es la solución lo que quiere ... y comprueba la documentation, hay un método para obtener getCheckedselected options. el suyo no funciona porque el pluging vuelve a formatear los elementos seleccionados. ejemplo

$('.multi').multiselect({ 
    click: function(e, ui){ 
    if($(this).multiselect("getChecked").length 
           == $('select.multi > option').length){ 
     $(this).multiselect("uncheckAll");  
    }   
    } 
}); 

violín:http://jsfiddle.net/fG6PT/11/

9
$("#multiselectelement").multiselect("uncheckAll"); 
Cuestiones relacionadas