5 Stimmen

jQuery datepicker wird im IE immer wieder neu geöffnet

JQuery's datepicker öffnet sich immer wieder, nachdem man auf ein Datum im IE 8 geklickt hat, sogar auf der Demo-Seite:

http://jqueryui.com/demos/datepicker/

Weiß jemand, wie man das beheben kann? Ich weiß nicht, über die Demo-Seite, aber ich habe genau das gleiche Problem mit jQuery 1.6.2 und jQuery UI 1.8.15.

Auch die Einstellung der Optionen minDate und maxDate scheint im IE 8 keine Wirkung zu haben. Das oben Gesagte scheint auch auf IE 7 zuzutreffen.

0 Stimmen

Ich bin gerade auf das gleiche Problem gestoßen. Es scheint ein neues Verhalten zu sein, das mit 1.8.15 eingeführt wurde. Ich bin auf der Suche nach einem Workaround.

0 Stimmen

Ein Downgrade auf jQuery UI 1.8.14 hat die Sache für mich erledigt.

0 Stimmen

Es gibt eine "stabile" Version von 1.8.16, in der dieses Problem ebenfalls behoben ist.

8voto

Cory Martin Punkte 101

Die folgende Lösung für dieses Problem für mich (mit jQuery 1.7.2 / jQueryUI 1.8.20)

var $input = $('#date');

$input.datepicker({
  /* 
   * your other settings here 
   */
  onSelect : function() { $input.blur(); },
  onClose  : function() { $input.change(); }
});

$input.on('change paste', function(evt) {
  // process new date input here
});

0 Stimmen

Sie können auch Folgendes verwenden $(this) innerhalb der onSelect 's & onClose Callback-Funktionen.

1 Stimmen

@koiyu, können Sie, aber dann sind Sie den jQuery-Konstruktor erneut aufrufen, um eine neue Instanz für das Eingabeelement zu erstellen. Es ist effizienter, eine zwischengespeicherte Instanz zu verwenden.

1voto

andyb Punkte 42700

1.8.14 funktioniert einwandfrei im IE8.

Das erneute Öffnen scheint ein Fehler in 1.8.15 zu sein, siehe defekte Demo .

0 Stimmen

Danke! Ich habe ein Downgrade auf 1.8.14 durchgeführt und damit das Problem mit dem erneuten Öffnen des Kalenders behoben. Hoffe, jemand hat eine Lösung für die minDate und maxDate Probleme.

0 Stimmen

Ok, das minDate und maxDate war mein Fehler. Ich habe das Datum im falschen Format übergeben. Ich habe new Date('2011-08-16') anstelle von Date('08-18-2011') als minDate-Option übergeben.

0 Stimmen

Gut, dass Sie den anderen Teil gelöst haben. Ich habe die jQuery UI Fehlerliste durchsucht, aber nichts gefunden, was dem entspricht, was du gefunden hast. Ich werde es selbst morgen erhöhen, wenn ich nicht einen bestehenden Fehler finden kann.

1voto

BuildFailure Punkte 11

Ich hatte das gleiche Problem mit IE8 und die angepasste min Version von Jquery UI 1.8.16 (alle Optionen ausgewählt) Wenn ich die volle freigegebene Version von 1.8.16 das Problem ging weg.

0 Stimmen

Vielen Dank für diese Anregung! Ich werde sicherstellen, dass ich die Vollversion verwende.

1voto

Stefan Zugal Punkte 11

Wir sind mit dem gleichen Problem für jquery ui 1.11.2 konfrontiert. Das folgende Snippet löste das Problem in unserem Fall:

var input = $('<input>');

input.datepicker({
  onSelect: function() {
    this.lastShown = new Date().getTime();
  },
  beforeShow: function() {
    var time = new Date().getTime();
    return this.lastShown === undefined || time - this.lastShown > 500;
  }
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X