2013-07-12 2 views
1

У меня есть mootools datepicker (Arian/monkeyphysics) с двумя полями ввода даты.
Я хочу установить дату второго поля на следующий день после первого.mootools datepicker установленное значение от другого datepicker

До сих пор у меня есть:

window.addEvent("domready", function(e){ 
    new DatePicker('#arrival_date', { positionOffset: { x: -3, y: 5 }}); 
    new DatePicker('#departure_date', { positionOffset: { x: -3, y: 5 },onShow: function(){test();} 
}); 

function test(){ 
    firstvalue = Date.parse($('arrival_date').value); 
    newvalue = firstvalue.increment(); //ad 1 day to first input date 
    console.log(newvalue); // Logs ok:Fri Jan 16 1970 22:24:11 ... 

    $('arrival_date').set('value', newvalue);   //doesn't work 
    $$('#departure_date').attach('#arrival_date');  //doesn't work 
    $$('#departure_date').select(newvalue);   //doesn't work 
} 

Как сделать? (установить дату второго поля через один день после первого).

ответ

1

Эта версия DatePicker использует скрытые входы. Так что вы видите не то, что ваш ввод имеет значение, он имеет unix datestamp.

Если вы заметили, что Date.parse($('arrival_date').value); был в 70-х годах, это связано с тем, что javascript использует миллисекунды, а время unix - в секундах. Чтобы получить «реальный» день с $('arrival_date').value, вам нужно умножить на 1000. Но вам это действительно не нужно.

Чтобы сделать второй DatePicker получить день от первых вы можете использовать это:

onSelect: function(){ 
    var depDate = $('departure_date'); 
    if (depDate.value == ""){ 
     depDate.value = $('arrival_date').value + 86400; 
    } 
} 

Это добавит один день к первой дате if Datepicker второй пуст. Дело в том, что вы не увидите изменения до тех пор, пока вы не откроете дату, поэтому, если вы измените значение программно, пользователь не увидит. Это означает, что без if, если пользователь снова меняет первый вход, вы теряете вторую дату, и пользователь не замечает, что приводит к разочарованию/ошибкам.

+0

Отлично! Спасибо! – Rikard

+0

Добро пожаловать. – Sergio

Смежные вопросы