Привет всем, программлю в основном на php, сейчас хочу разобраться с jQuery. Скачал скрипт по datepick. У кого есть время и желание, прокомменьте строчки кода JavaScript. Был бы очень признателен.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<title>Datepicker & Difference</title>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7/themes/redmond/jquery-ui.css" media="screen" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7/jquery-ui.min.js"></script>
<script type="text/javascript">
var DatePicked = function() {
var departure = $("#departure"); // значение отправления - число
var arrival = $("#arrival"); //значение прибытия - число
var nights = $("#nights"); // полученное число
//alert(arrival);
var triggeringElement = $(this); //данный элемент
//alert(triggeringElement);
var departureDate = departure.datepicker("getDate");//получить выбранную дату из ячейки отправления
alert(departureDate);
var minArrivalDate = new Date(); //массив дат
if (departureDate != null) { //если выбрана дата отправления
minArrivalDate.setDate(departureDate.getDate() + 2); //вносим в массив дат значение +2
alert(minArrivalDate);
} else {//если не выбрана дата отправления
minArrivalDate.setDate(minArrivalDate.getDate() + 1);//вносим в массив дат значение +1
alert(minArrivalDate);
}
arrival.datepicker('option', 'minDate', minArrivalDate);//назначаем прибытию минимальное значение даты
var arrivalDate = arrival.datepicker("getDate"); //дата прибытия берется из ячейки прибытия
alert(arrivalDate);
if (departureDate != null && arrivalDate != null && triggeringElement.attr("id") != "nights") {
var oneDay = 1000*60*60*24;
alert(oneDay);
var difference = Math.ceil((arrivalDate.getTime() - departureDate.getTime()) / oneDay);
nights.val(difference);
} else if (departureDate != null && triggeringElement.attr("id") == "nights") {
var nightsEntered = parseInt(nights.val());
alert(oneDay);
if (nightsEntered >= 2) {
var newArrivalDate = new Date();
newArrivalDate.setDate(departureDate.getDate() + nightsEntered);
arrival.datepicker("setDate", newArrivalDate);
} else {
alert(oneDay);
alert("Nights must be greater than 2.");
}
}
alert(oneDay);
}
$(function() {
$("#departure, #arrival").datepicker({
onSelect: DatePicked
});
$("#nights").change(DatePicked);
DatePicked();
});
</script>
</head>
<body>
<div>
<label for="departure">Departure</label>
<input type="text" id="departure" name="departure" />
</div>
<div>
<label for="arrival">Arrival</label>
<input type="text" id="arrival" name="arrival" />
</div>
<div>
<label for="nights">Nights</label>
<input type="text" id="nights" name="nights" />
</div>
</body>
</html>
Дальше начал терять мысль рассуждений, поэтому не стал комментить... Еще очень важный вопрос, как вы отлаживаете код на JavaScript. В php я просто выводил значение переменной(var_dump), в JavaScript выводить alertom не слишком удачная идея, мне кажется.