Ich benutze die neuesten Bootstrap datepicker.js. Alles funktioniert gut, außer wenn ich ein Datum aus dem Dropdown-Menü auswähle, wird es nicht automatisch geschlossen. Ich habe im Web gesucht und versucht, die folgende Funktion in meinem Javascript wie folgt zu verwenden:
$('#selectDate').datepicker({
autoclose: true
}).on('changeDate', function (ev) {
(ev.viewMode == 'days') ? $(this).datepicker('hide') : '';
});
wenn ich jedoch Google Chrome Dev-Tools verwende, wurde mir klar, dass ev.viewmode nicht definiert war. Ich bin nicht sicher, wie ich vorankommen soll.
Versuche dies:
$('#selectDate').datepicker()
.on('changeDate', function(ev){
$('#selectDate').datepicker('hide');
});
Update:
autoclose
funktioniert gut, wenn Sie die auf github vorhandene aktualisierte Version von datepicker verwenden:
Ich habe autoclose hinzugefügt: true, (mit Semikomma am Ende und es funktioniert)
$('.datepicker').datepicker({
format: 'dd/mm/yyyy',
todayHighlight:'TRUE',
autoclose: true,
})
Keines der oben genannten Verfahren hat für mich funktioniert, aber die Überschreibung der Standardeinstellung von Datepicker funktionierte wie ein Charme und ist ein Einzeiler
$.fn.datepicker.defaults.autoclose = true;
Versuche dies:
$('#selectDate').datepicker().on('changeDate', function(ev)
{
$('.datepicker').hide();
});
Wenn Sie über mehrere Textfelder verfügen, für die Sie datepicker angewendet haben, kann die alte Lösung das Problem verursachen Versuchen Sie es stattdessen mit
$('.datepicker').datepicker({
format: "dd/mm/yyyy",
autoclose: true,
}).on('changeDate', function (ev) {
$(this).datepicker('hide');
});
Achten Sie darauf, https://github.com/eternicode/bootstrap-datepicker/issues/500
Hinweis: Vergessen Sie nicht, wir verwenden den Class-Selector von Jquery, damit Sie Sie müssen die datepicker-Klasse auf Ihr Textfeld anwenden.
Für mich stellte sich heraus, dass dies ein Tippfehler in der Bootstrap-Datepicker-Dokumentation ist. Anstelle von "autoclose: true" ist es "autoClose: true".
Ich hoffe es hilft.
Speichern und aktualisieren Sie Ihr Projekt und dies sollte funktionieren.
// 10000% work Wechseln Sie zur Datei bootstrap-datepicker.js
Suche nach diesem:
'mousedown touchstart': $.proxy(function(e){
// Clicked outside the datepicker, hide it
if (!(
this.element.is(e.target) ||
this.element.find(e.target).length ||
this.picker.is(e.target) ||
this.picker.find(e.target).length
)) {
this.hide(); //remove this
}
}, this)
}]
];
},
Das funktioniert für mich.
$(".date-picker").datepicker( {
format: "yyyy-mm-dd",
}).on('change', function (ev) {
$(this).datepicker('hide');
});
Wenn Sie mit der Standard-Datumsauswahl der Klasse über das Div fahren. Die Kalendersteuerung wird angezeigt. Am Mouseleave wird es verschwinden.
$(document).on("focus", ".defaultdatepicker", function () {
$(this).datepicker({
format: 'dd/mm/yyyy',
todayHighlight: 'TRUE',
autoClose: true,
});
$('#datepicker').css({ "opacity": "1" });
});
$('.defaultdatepicker').on('mouseleave', function () {
$('.datepicker').fadeOut(function () {
$('.formattedStartDate').attr('class', 'formattedStartDate');
$('#datepicker').css({ "opacity": "0" });
});
});