2016-07-12 19 views
1

Ich habe eine jQuery-Multiselect, bei der alle Optionen standardmäßig aktiviert sind. Immer, wenn sich die ausgewählten Optionen ändern, lade ich die Seitendaten entsprechend neu.jQuery Multiselect - Alle Event-Handler auswählen

Alles funktioniert gut, außer dass der Klick auf 'Alles auswählen' kein onChange-Ereignis auslöst und ich kann die Daten nicht neu laden, wenn darauf geklickt wird. Ich habe versucht, Ereignishandler zu checkAll und selectAll, aber ohne Erfolg zu verbinden.

$("#testselect").multiselect({ 
     nonSelectedText: 'None', 
     allSelectedText: 'All Selected', 
     includeSelectAllOption: true, 
     buttonWidth: '100%', 
     checkAll: function() { 
      alert("check all"); // Doesn't work 
     }, 
     selectAll: function() { 
      alert("select all"); // Doesn't work 
     }, 
     onChange: function (option, checked, select) { 
      alert("onchange") // Works but not for 'All Selected' 
      // Do something 
     } 
}); 
$("#testselect").multiselect('selectAll', false); 
$("#testselect").multiselect('updateButtonText'); 
+0

Ist das die Multiselect, die Sie verwenden? http://www.erichynds.com/blog/jquery-ui-multiselect-widget, weil ich keine onChange() -Methode sehe –

Antwort

0

Hauptkontrollkästchen hinzufügen:

<th>SELECT ALL<br/><input type="checkbox" onClick="toggle(this)" /></th> 

Script hinzufügen:

  <script> 

      function toggle(source) { 
      checkboxes = document.getElementsByName('checkbox[]'); 
      if(x=1) 
      { 
      for(var i=0, n=checkboxes.length;i<n;i++) { 
       checkboxes[i].checked = source.checked; 
      }}} 



      </script> 

Ankreuzfelder hinzufügen Sie möchten gerne von Haupt wählen:

<input name="checkbox[]" type="checkbox" > 
0

Dies funktioniert für mich.

$(document).on('click', '.ms-selectall', function(event){ 
     //your code 
});