2010-08-16 6 views
0

est-ce un bogue dans l'interface utilisateur jQuery? Lorsque j'appelle .datepicker('setDate', date); et date est un objet date-objet avec l'heure, datepicker définir l'heure de date à 0:00?jQueryUI datepicker ('setDate') supprime l'heure

Et si je clone la variable ..

var datewithtime = new Date(); 
var lTmpDate = datewithtime; 
$('#Modal_KalendarTermin #DP_DatumVon').datepicker("setDate", lTmpDate); 

.. datewithtime est la même (sans temps - seule date avec le temps = 0h00).

J'ai trouvé un troisième paramètre "noChange" dans le jquery-ui.js -> serach pour "_setDate: function". Pour quoi?

Extrait de jquery-ui.js

/* Set the date(s) directly. */ 
_setDate: function(inst, date, noChange) { 
    var clear = !(date); 
    var origMonth = inst.selectedMonth; 
    var origYear = inst.selectedYear; 
    date = this._restrictMinMax(inst, this._determineDate(inst, date, new Date())); 
    inst.selectedDay = inst.currentDay = date.getDate(); 
    inst.drawMonth = inst.selectedMonth = inst.currentMonth = date.getMonth(); 
    inst.drawYear = inst.selectedYear = inst.currentYear = date.getFullYear(); 
    if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange) 
     this._notifyChange(inst); 
    this._adjustInstDate(inst); 
    if (inst.input) { 
     inst.input.val(clear ? '' : this._formatDate(inst)); 
    } 
}, 

Merci pour vos réponses et désolé pour mon mauvais anglais!

Répondre

0

L'outil datepicker de l'interface utilisateur jQuery ne gère que les dates. Comme vous pouvez le voir à partir du code auquel vous avez lié, la date transmise à setDate est uniquement utilisée pour définir les valeurs de currentDay, currentMonth et currentYear. Toutes les autres informations de date seront supprimées, par conception.

Le paramètre noChange est un indicateur, probablement utilisé uniquement en interne, pour déterminer s'il faut ou non appeler notifyChange lorsque les valeurs sont modifiées.

Questions connexes