2012-10-02 3 views
6

Ich versuche, eine Ereignisunschärfe bei der Eingabe hinzuzufügen, um einen Kalender auszublenden.
Das Plugin, das ich verwende, um den Kalender anzuzeigen, ist die folgende eternicode/bootstrap-datepicker. HierVerstecken Sie den Datepicker bei Blur-Ereignis

ist der Quellcode http://jsfiddle.net/KLpq7/75/

var inputs = $('.datepicker').datepicker({ 
    autoclose: true 
}); 

inputs.on('blur', function() { 
      console.log($(this)); 
      // I would like to hide just the date picker 
      //$(this).hide(); 
}); 

Antwort

3
inputs.on('blur', function() { 
     inputs.datepicker('hide'); 
    }); 
+2

es funktioniert teilweise leider, weil die Datepicker versteckt ist, aber das Datum wird in der Eingabe nicht gefüllt. –

8

du versuchen:

var inputs = $('.datepicker').datepicker({ 
format: 'yyyy-mm-dd', 
autoclose: true}).on('changeDate', function (ev) { 
     $(this).blur(); 
     $(this).datepicker('hide'); 
    }); 

Fiddle: http://jsfiddle.net/KLpq7/82/

+1

Dies ist die richtige Antwort und sollte als solche gekennzeichnet werden. Die Antwort von AntoJs macht es tatsächlich unmöglich, ein Datum auszuwählen, da das Unschärfe-Ereignis aufgerufen wird, bevor der Klick den Datumswert in der Eingabe festlegen kann. – mikeschuld

+0

Wenn Sie gelöst haben, überlegen Sie, die Antwort zu akzeptieren –

1

Versuchen this aktualisiert Geige. Ich denke, da Sie einen Klassenselektor verwendet haben, gab es einige Konflikte im Unschärfe-Event-Handler. Ich habe jede Kalenderauswahl nach ID getrennt und es scheint jetzt gut zu funktionieren.

2

Dies ist ein known bug * - Wenn Sie "datepicker" als die Klasse für Ihre Eingaben verwenden, interferiert es mit dem Datepicker-Code, weil datepicker auch die für den Auswahlbereich verwendete Klasse ist. Wenn Sie eine andere Klasse für Ihre Auswahl verwenden, sollten Sie das Problem zunächst beheben.

* Es gibt keine offen Tickets für sie im Moment, aber es wird als ein kleiner Fehler anerkannt

Verwandte Themen