J'utilise bootstrap datepicker avec un graphique en ligne.
Je veux que la datepicker date à mettre à jour lorsque le graphique est zoomé. Une fois que cet événement se déclenche, je mets à jour les valeurs du sélecteur de date. Les valeurs sont mises à jour correctement, mais lorsque l'utilisateur clique sur le calendrier, la date du calendrier en incrustation reste l'ancienne.
Voici mon datepicker:
<div class="input-append date pull-right" id="dpStartDate" data-date="@DateTime.Now.AddMonths(-1).ToString("dd/MM/yyyy")" data-date-format="dd/mm/yyyy">
<input class="span2" id="startDateText" size="16" type="text" value="@DateTime.Now.AddMonths(-1).ToString("dd/MM/yyyy")" readonly="">
<span class="add-on"><i class="icon-th"></i></span>
</div>
J'ai juste essayé de mettre à jour les valeurs en utilisant ce code:
$('#dpStartDate').attr('data-date', startDate);
$('#startDateText').attr('value', startDate);
qui met à jour les dates bien mais ne définit pas le calendrier.
J'ai également essayé de déclencher l'événement onChange, qui met également à jour les dates mais pas le calendrier:
$('#dpStartDate').trigger('changeDate', startDate);
$('#dpStartDate').datepicker()
.on('show', function (ev) {
ev.stopPropagation();
})
.on('changeDate', function (ev, date) {
var startDate = new Date();
if (date != undefined) {
startDate = date;
$('#dpStartDate').attr('data-date', startDate);
$('#startDateText').attr('value', startDate);
}
else {
startDate = ev.date;
$('#dpStartDate').attr(startDate.getDate() + '/' + (startDate.getMonth() + 1) + '/' + startDate.getFullYear());
$('#startDateText').attr(startDate.getDate() + '/' + (startDate.getMonth() + 1) + '/' + startDate.getFullYear());
}
$('#dpStartDate').datepicker('hide');
ev.stopPropagation();
});
Est-ce que quelqu'un sait s'il est même possible de mettre à jour le calendrier comme ça?
Merci
Ça marche pour moi
$(".datepicker").datepicker("update", new Date());
var startDate = new Date();
$('#dpStartDate').data({date: startDate}).datepicker('update').children("input").val(startDate);
autrement
$('#dpStartDate').data({date: '2012-08-08'});
$('#dpStartDate').datepicker('update');
$('#dpStartDate').datepicker().children('input').val('2012-08-08');
de cette façon, vous définissez la date sur '2012-08-08'
$("#datepicker").datepicker("setDate", new Date);
Essayez ce code,
$(".endDate").datepicker({
format: 'dd/mm/yyyy',
autoclose: true
}).datepicker("update", "10/10/2016");
cela mettra à jour la date et appliquera également le format dd/mm/yyyy
.
Ça marche pour moi
$('#datepicker').datepicker("setValue", '01/10/2014' );
$('#datepicker').datepicker("setValue", new Date(2008,9,03));
Mieux vaut utiliser:
$("#datepicker").datepicker("setDate", new Date);
au lieu de
$("#datepicker").datepicker("update", new Date);
Si vous utilisez update, l'événement changeDate n'est pas déclenché.
Je devais faire 'setValue' et 'update' afin de le faire fonctionner complètement
$('#datepicker').datepicker('setValue', '2014-01-29').datepicker('update');
Ça marche vraiment.
Simple,
Facile à comprendre,
Méthode unique pour définir et mettre à jour le plugin qui a fonctionné pour moi.
$(".datepicker").datepicker("update", new Date());
Autres moyens de mise à jour
$('.datepicker').data({date: '2015-01-01'});
$('.datepicker').datepicker('update');
N'oubliez pas d'appeler update
manuellement.
Pour les datetimepickers, utilisez ce travail pour moi
$('#lastdate1').data({date: '2016-07-05'});
$('#lastdate1').datetimepicker('update');
$('#lastdate1').datetimepicker().children('input').val('2016-07-05');
Cela fonctionne pour moi:
$('#dpStartDate').data("date", startDate);
Lorsque vous utilisez les méthodes d’autres réponses, les options configurées sont perdues. Pour la corriger, vous pouvez utiliser une configuration globale:
$('.datepicker').datepicker();
$.fn.datepicker.defaults.format = 'dd/mm/yyyy';
$.fn.datepicker.defaults.startDate = "0";
$.fn.datepicker.defaults.language = "es";
$.fn.datepicker.defaults.autoclose = true;
$.fn.datepicker.defaults.todayHighlight = true;
$.fn.datepicker.defaults.todayBtn = true;
$.fn.datepicker.defaults.weekStart = 1;
Maintenant, vous pouvez utiliser la méthode de mise à jour sans perdre les options:
$(".datepicker").datepicker("update", new Date("30/11/2018"));
Pour Bootstrap 4
Si vous utilisez un groupe d'entrées dans Bootstrap, vous devez associer la nouvelle date au parent de la zone de texte, sinon, si vous cliquez sur l'icône du calendrier et cliquez en dehors de la date, la date sera effacée.
<div class="input-group date" id="my-date-component">
<input type="text" />
<div class="input-group-append">
<span class="input-group-text"><i class="fa fa-calendar"></i></span>
</div>
</div>
Vous devez définir la date sur input-group.date
.
$('#my-date-component').datepicker("update", new Date("01/10/2014"));
Vérifiez également datepicker update method
$('#datetimepicker1').data("DateTimePicker").date('01/11/2016 10:23 AM')
@Imran answer fonctionne pour les zones de texte
pour appliquer le datepicker à une div, utilisez ceci:
$('#div_id').attr("data-date", '1 January 2017');
$('#div_id').datepicker("update");
virgule-délimiter plusieurs dates:
$('#div_id').attr("data-date", '1 January 2017,2 January 2017,3 January 2017');
Si vous vous référez à https://github.com/smalot/bootstrap-datetimepicker Vous devez définir la valeur de date par: .setDate (nouvelle Date (valeur));
Vous pouvez utiliser cette méthode simple comme:
qsFromDate = '2017-05-10';
$("#dtMinDate").datepicker("setDate", new Date(qsFromDate));
$('#dtMinDate').datepicker('update');
Vous pouvez faire aussi de cette façon:
$("#startDateText").datepicker({
toValue: function (date, format, language) {
var d = new Date(date);
d.setDate(d.getDate());
return new Date(d);
},
autoclose: true
});
http://bootstrap-datepicker.readthedocs.org/en/latest/options.html#format
Si vous utilisez Bootstrap DatePicker version 4+
Remarque Toutes les fonctions sont accessibles via l'attribut de données, par exemple, . $ ('# datetimepicker'). data ("DateTimePicker"). FUNCTION ()
Pour définir la valeur de la date, vos codes doivent ressembler à
$("#datetimepicker").data("DateTimePicker").date(new Date());
Simple comme ça (une ligne)
$('#startDateText').val(startDate).datepicker("update");
Utilisez le code:
var startDate = "2019-03-12"; //Date Format YYYY-MM-DD
$('#datepicker').val(startDate).datepicker("update");
Explication:
Datepicker (champ de saisie) Selector #datepicker.
Mettre à jour le champ de saisie.
Appelez Datepicker avec l'option update.