2010-07-13 5 views
1

Я использую всплывающий календарь на основе JavaScript с динамического диска с именем «Xin's Popup Calendar», и он отлично работает. Но, я хочу, чтобы отрегулировал дату второго текстового поля на основе выбора.Обновление 2-го текстового поля на основе выбора всплывающего календаря

Например, я хочу, чтобы иметь возможность автоматически настраивать его на +1 месяц независимо от того, какая дата была выбрана во всплывающем окне. Как я могу это сделать?

Вот пример:

<input type="text" name="firstinput" size=20> 
<small><a href="JavaScript:showCal('Calendar1')">Select Date</a></small> 

<p> 
<input type="text" name="secondinput" size=20> 
<small><a href="JavaScript:showCal('Calendar2')">Select Date</a></small> 
</p> 

Если firstinput дата 3/21/10, я хочу secondinput, чтобы изменить 4/21/10 в то же время.

+0

Вы хотите, чтобы это изменение произошло только при использовании всплывающего окна? Не когда пользователь вводит дату? То есть, если второй вход всегда будет на 1 месяц отдельно от первого, независимо от того, что делает пользователь? –

+0

Да, если случайно они вводят его вручную, я бы хотел, чтобы он автонастраивался до +1 месяца, но важно отметить, что я хочу, чтобы они все еще имели возможность вручную отменить настройку. Итак, только потому, что он поступил в 4/21/10, они все равно могут изменить его до 4/17/2010, например. – Refiking

ответ

0

Для этого есть две части: (1) функция добавления месяца к данным и (2) обработчик события изменения в текстовое поле. Это решение очень специфично для Xin Pop Up Calendar.

function addMonth(d,month){ 
t = new Date (d); 
t.setMonth(d.getMonth()+ month) ; 
if (t.getDate() < d.getDate()) 
    { 
    t.setDate(0); 
    } 
return t; 
} 

$("input[name='firstinput']").change(function(){ 

var dt = $(this).val(); 
var yr = dt.substring(0,4); 
var mo = dt.substring(5,7); 
var dy = dt.substring(8,10); 

var firstDate=new Date(); 
firstDate.setFullYear(yr,mo-1,dy); 

var secondDate = addMonth(firstDate,1); 
$("input[name='firstinput']").val(secondDate.getFullYear() + "/" + secondDate.getDate() + "/" + secondDate.getMonth()+1); 

}); 
Смежные вопросы