Comment masquer le calendrier après la sélection d'une date? Existe-t-il une fonction spécifique que je peux utiliser? Mon code ci-dessous:
$('#dp1').datepicker({
format: 'mm-dd-yyyy',
startDate: '-15d',
autoclose: true,
endDate: '+0d' // there's no convenient "right now" notation yet
});
Toute aide serait appréciée.
Vous pouvez utiliser l'événement changedate()
pour déterminer quand la date est modifiée avec la méthode datepicker('hide')
pour masquer la datepicker
après la sélection:
$('yourpickerid').on('changeDate', function(ev){
$(this).datepicker('hide');
});
UPDATE
C'était le bug avec autoclose: true
. Ce bogue a été corrigé dans le dernier maître. VOIR LE COMMIT. Obtenez le dernier code de GitHub
Si cela ne vous aide, la version 2.0 du bootstrap datepicker ne fonctionne plus avec la réponse acceptée.
Voici comment je l'ai fait travailler sur le mien:
$('yourpickerid').datepicker({
format: 'dd/mm/yyyy',
}).on('changeDate', function(e){
$(this).datepicker('hide');
});
Voir http://bootstrap-datepicker.readthedocs.org/en/latest/events.html#changedate
$('#input').datepicker({autoclose:true});
Le problème peut être arrêté en bloquant l'événement hide de l'élément input par cette ligne:
var your_options = { ... };
$('.datetimepicker').datetimepicker(your_options).on('hide', function (e) {
e.preventDefault();
e.stopPropagation();
});
Si vous souhaitez remplacer le comportement du calendrier en général, essayez de modifier la fonction Datepicker (dans mon exemple, c'était la ligne 82),
de
this.autoclose = false;
à
this.autoclose = true;
Cela a bien fonctionné pour moi, car je souhaitais que toutes mes instances de calendrier se comportent de la même manière.
bootstrap-datepicker.js
var defaults = $.fn.datepicker.defaults
autoclose: true
Enregistrez et actualisez votre projet et cela devrait faire.
$('yourpickerid').datetimepicker({
pickTime: false
}).on('changeDate', function (e) {
$(this).datetimepicker('hide');
});
Fermer datetimepicker lorsque la date est sélectionnée (datetimepicker affiche la date avec l'heure)
$('.datepicker').datepicker({
autoclose: true,
closeOnDateSelect: true
});
J'ai changé pour datetimepicker et formater à 'JJ/MM/AAAA'
$("id").datetimepicker({
format: 'DD/MM/YYYY',
}).on('changeDate', function() {
$('.datepicker').hide();
});
J'ai une solution parfaite:
$('#Date_of_Birth').datepicker().on('changeDate', function (e) {
if(e.viewMode === 'days')
$(this).blur();
});
Ayant un problème avec l'horloge montrant toujours même si j'ai écrit le format: 'AAAA-MM-JJ',
Je dois définir pickTime: false
et après changement-> masquer je dois focus-> show
$('#VBS_RequiredDeliveryDate').datetimepicker({
format: 'YYYY-MM-DD',
pickTime: false
});
$('#VBS_RequiredDeliveryDate').on('change', function(){
$('.datepicker').hide();
});
$('#VBS_RequiredDeliveryDate').on('focus', function(){
$('.datepicker').show();
});
Vous pouvez changer le code source, bootstrap-datepicker.js. Ajouter this.hide();
comme ne
if (this.viewMode !== 0) {
this.date = new Date(this.viewDate);
this.element.trigger({
type: 'changeDate',
date: this.date,
viewMode: DPGlobal.modes[this.viewMode].clsName
});
this.hide();//here
}
$('.datepicker').datepicker({
autoclose: true
});
Pour le sélecteur de date/heure
$('yourpickerid').datetimepicker({
format: 'dd/mm/yyyy',
}).on('changeDate', function(e){
$(this).datetimepicker('hide');
});
Au moins dans la version 2.2.3 que j'utilise, vous devez utiliser autoClose
au lieu de autoclose
. Le cas des lettres compte.
Utilisez ceci pour datetimepicker, cela fonctionne bien
$('#Date').data("DateTimePicker").hide();