<script type="text/javascript"> // When the document is ready $(document).ready(function () { $('.datepicker').datepicker({ format: "yyyy-mm-dd", }).on('changeDate', function(ev){ // do what you want here $(this).datepicker('hide'); }).on('changeDate', function(ev){ if ($('#startdate').val() != '' && $('#enddate').val() != ''){ $('#period').text(diffInDays() + ' d.'); } else { $('#period').text("-"); } }); </script>
Voici donc ce que ressemble à mon datepicker. Donc, fondamentalement, lorsque je change de date en cliquant sur la souris, cela fonctionne bien, mais quand je change manuellement la date avec le clavier ou nettoie manuellement, l'événement de date de changement de date n'est pas appelé. Est-ce un bug ou est-ce que je fais quelque chose de mal ici?
Je suppose que vous devez utiliser l'événement de change
sur l'entrée elle-même si vous souhaitez répondre à l'entrée manuelle, car l'événement changeDate
est uniquement pour la date à laquelle la date est modifiée à l'aide de la datepicker.
Essayez quelque chose comme ceci:
$(document).ready(function() { $('.datepicker').datepicker({ format: "yyyy-mm-dd", }) //Listen for the change even on the input .change(dateChanged) .on('changeDate', dateChanged); }); function dateChanged(ev) { $(this).datepicker('hide'); if ($('#startdate').val() != '' && $('#enddate').val() != '') { $('#period').text(diffInDays() + ' d.'); } else { $('#period').text("-"); } }
Dans la version 2.1.5
ChangeDate a été renommé pour changer.dp ainsi changé ne fonctionnait pas pour moi
$("#datetimepicker").datetimepicker().on('change.dp', function (e) { FillDate(new Date()); });
Également nécessaire pour changer la classe css de datepicker à datepicker-input
<div id='datetimepicker' class='datepicker-input input-group controls'> <input id='txtStartDate' class='form-control' placeholder='Select datepicker' data-rule-required='true' data-format='MM-DD-YYYY' type='text' /> <span class='input-group-addon'> <span class='icon-calendar' data-time-icon='icon-time' data-date-icon='icon-calendar'></span> </span> </div>
Le format de la date fonctionne également dans les caractères en majuscules comme ce format de données = 'MM-DD-AAAA'
Il pourrait être utile pour quelqu'un que cela m'a donné du temps vraiment difficile 🙂
Essaye ça:
$(".datepicker").on("dp.change", function(e) { alert('hey'); });
Cela devrait fonctionner dans les deux cas
function onDateChange() { // Do something here } $('#dpd1').bind('changeDate', onDateChange); $('#dpd1').bind('input', onDateChange);
La nouvelle version a changé … pour la dernière version, utilisez le code ci-dessous:
$('#UpToDate').datetimepicker({ format:'MMMM DD, YYYY', maxDate:moment(), defaultDate:moment() }).on('dp.change',function(e){ console.log(e); });