2016-06-22 6 views
1

ich meine jQuery Datepicker machen wie so ...Toggle aktiv Datum jQuery dateclicker

HTML:

<div id="datepicker"></div>

JS:

  $(function() { 
      $('#datepicker').datepicker({ 
          dateFormat: 'dd/mm/yy', 
          beforeShowDay: enableAllTheseDays, 
          dayNamesMin: [ "M", "T", "W", "T", "F", "S", "S" ], 
          duration: "slow", 
          showOtherMonths: true, 
          onSelect: function(date) { 

            } 
           } 

          } 
         }) 
         }) 

Also, wenn ich ein Datum für die Auswahl Kalender Es hängt eine Klasse an das td Element namens ui-datepicker-current-day und das innere a Element hat ui-state-active hinzugefügt.

Ich versuche zu, klicken Sie auf das Element erneut, schalten Sie es aus. Ich kann jedoch nicht erreichen, dass onClick-Ereignisse innerhalb des Datepickers ausgelöst werden.

Ich kann onClick Ereignisse an andere Elemente von html auf der Seite anhängen. Aber alles, was im jQuery UI Datepicker enthalten ist, löst keines der Click Events aus.

Hat jemand eine Idee, was ich falsch mache?

Antwort

0

Zunächst einmal haben Sie einen Javascript-Fehler (überprüfen Sie die Konsole) - es ist ein Parse-Fehler. Sie haben die Klammern nicht geschlossen. Deshalb funktioniert kein onclick.

über Ihr Problem global, versuchen, diese Sache:

$(function() { 
    var previousValue = null; 
    $('#datepicker').datepicker({ 
     dateFormat: 'dd/mm/yy', 
     beforeShowDay: enableAllTheseDays, 
     dayNamesMin: [ "M", "T", "W", "T", "F", "S", "S" ], 
     duration: "slow", 
     showOtherMonths: true, 
     onSelect: function(date) { 


      if (previousValue == $(this).val()) { 
       $("#datepicker").datepicker('setDate', null); 
      } 
      previousValue = $(this).val(); 
     } 
    }); 
}); 

http://jsfiddle.net/rafii/kgkpLakj/3/

Das einzige Problem ist, wenn Sie Datumsauswahl sind wieder neu einstellen - es aktuelles Datum festlegt.

EDIT: Diese (ganze Funktion in dieser Geige: http://jsfiddle.net/rafii/kgkpLakj/4/) in

in picker Konfiguration:

defaultDate: null 

und in onSelect Funktion:

$('a.ui-state-active').removeClass('ui-state-active'); 
+0

Dies ist eine Art, was ich Auf der Suche nach. Allerdings wird es jetzt auf den aktuellen Tag zurückgesetzt, an dem ich gerade bin. Also bin ich am Septemeber. Ich klicke erneut auf das Datumsauswahl-Datum, um es abzuwählen und es schickt mich zurück zum Juni. Ich will, dass es nur alle ausgewählten Daten löscht und mich an dem Datum halte, an dem ich mich auf – PourMeSomeCode

+0

befinde. Füge defaultDate hinzu: null und auch in der onSelect-Funktion $ ('a.ui-state-active'). RemoveClass ('ui-state-active'); –