select2 onchange-Ereignis funktioniert nur einmal

8

Ich habe ein Problem mit dem Select2 von jQuery.

Wenn die Seite geladen wird, wenn O auf das Suchergebnis klickt, wird das Ereignis onchange ausgewählt und ausgelöst, aber nur das erste Mal.

Wenn ich eine andere Zeit suche, wird es nicht.

Hier ist mein Code (es ist eine Ajax-basierte Suche):

%Vor%     
PartySoft 18.07.2013, 18:55
quelle

7 Antworten

16

Das ist was ich benutze:

%Vor%

Für die neuesten jQuery-Benutzer sollte dieser funktionieren:

%Vor%     
Steel Brain 11.08.2013 22:11
quelle
9

Offensichtlich wird das Änderungsereignis nicht ausgelöst, wenn bei der Verwendung von Daten bereits eine Auswahl existiert. Am Ende habe ich die Daten manuell aktualisiert, um das Problem zu beheben.

%Vor%

Ich weiß, das ist ziemlich spät, aber hoffentlich wird diese Antwort anderen Zeit sparen.

    
Keith Muenze 02.05.2014 22:53
quelle
4

Das liegt daran, dass die Items identisch sind. Bei Änderung wird nur ausgelöst, wenn bei Auswahl eine andere Element-ID gefunden wird.

Sie haben also 2 Möglichkeiten: Zuerst muss sichergestellt werden, dass jedes Element eine eindeutige ID hat, wenn Daten von Ajax abgerufen werden.

Zweitens wird eine Randnummer bei formatSelection für das ausgewählte Element ausgelöst.

%Vor%

.

%Vor%     
cpugourou 06.02.2015 01:48
quelle
4

Ab Version 4.0.0 funktionieren Ereignisse wie select2-selecting nicht mehr . Sie werden wie folgt umbenannt:

  
  • select2-close ist jetzt select2: close
  •   
  • select2-open ist jetzt select2: open
  •   
  • select2-opening ist jetzt select2: opening
  •   
  • select2-selecting ist jetzt select2: selecting
  •   
  • select2-removed ist jetzt select2: removed
  •   
  • select2-removing ist jetzt select2: Auswahl aufheben
  •   

Hinweis: Ссылка

%Vor% %Vor% %Vor%
    
Nisarg 12.09.2017 11:25
quelle
3
%Vor%     
HamidReza 06.02.2016 11:32
quelle
1

Legen Sie Ihren .on Listener fest, um nach bestimmten select2-Ereignissen zu suchen. Das "change" -Ereignis ist das gleiche wie üblich, aber die anderen sind spezifisch für das select2-Steuerelement:

  • ändern
  • select2-opening
  • select2-open
  • select2-close
  • select2-highlight
  • select2-selecting
  • select2-entfernt
  • select2-loaded
  • select2-focus

Die Namen sind selbsterklärend. Zum Beispiel wird select2-focus ausgelöst, wenn Sie dem Steuerelement den Fokus zuweisen.

    
Dradge 14.04.2016 14:00
quelle
0

Mein select2-Element hat das onchange -Ereignis nicht ausgelöst, da die Dropdown-Liste nur einen Wert enthielt, was es unmöglich machte, den Wert zu ändern.

Der Wert wurde nicht geändert, kein Ereignis wurde ausgelöst und der Handler konnte nicht ausgeführt werden.

Ich habe dann einen anderen Handler hinzugefügt, um den Wert zu löschen, wobei der select2-open Handler vor dem onchange Handler ausgeführt wird.

Der Quelltext sieht jetzt so aus:

%Vor%

Der erste Handler löscht den Wert und erlaubt es dem zweiten Handler, hochzufeuern, selbst wenn er denselben Wert auswählt.

    
Stephane 29.11.2017 21:21
quelle