Здравствуйте! Передо мной стоит задача написать скрипт по отсчету времени до заданной даты (дата задается пользователем в полях ввода) и вывести полученное значение тоже в полях ввода с обновлением счетчика через 1 секунду. Вот скрипт:
<html>
<head><title></title>
<script language="JavaScript">
function final_countdown() {
var day_in=document.f1.day_in.value;
var month_in=document.f1.month_in.selectedIndex;
var year_in=document.f1.year_in.value;
var hour_in=document.f1.hour_in.value;
var minute_in=document.f1.minute_in.value;
var second_in=document.f1.second_in.value;
var date_in=new Date(year_in,month_in,day_in,hour_in,minute_in,second_in);
//проверка на ввод полной даты
if((year_in=="")||(day_in=="")||(hour_in=="")||(minute_in=="")||(second_in=="")) {
alert("Вы ввели неполную дату!");
document.f1.reset();
document.f1.day_in.focus();
return "";
}
//далее проверка продолжается
var now=new Date();
var days=Math.floor((date_in-now)/(24*60*60*1000));
var hours=Math.floor(((date_in-now)%(24*60*60*1000))/(60*60*1000));
var minutes=Math.floor((((date_in-now)%(24*60*60*1000))%(60*60*1000))/(60*1000));
var seconds=Math.floor(((((date_in-now)%(24*60*60*1000))%(60*60*1000))%(60*1000))/1000);
var m=new Array(days,hours,minutes,seconds);
document.f1.day_out.value=m[0];
document.f1.hour_out.value=m[1];
document.f1.minute_out.value=m[2];
document.f1.second_out.value=m[3];
setTimeout("final_countdown()",1000);
return m;
}
function resetNum() {
document.f1.day_in.value="";
document.f1.month_in.selectedIndex=0;
document.f1.year_in.value="";
document.f1.hour_in.value="";
document.f1.minute_in.value="";
document.f1.second_in.value="";
document.f1.day_out.value="";
document.f1.hour_out.value="";
document.f1.minute_out.value="";
document.f1.second_out.value="";
document.f1.day_in.focus();
}
function init() {
document.f1.day_in.focus();
document.f1.start.onclick=final_countdown;
document.f1.reset_btn.onclick=resetNum;
document.f1.day_in.onfocus=resetNum;
}
window.onload=init;
</script>
</head>
<body>
<form name="f1">
<p><b>Задайте требуемый момент времени:</b></p>
<table>
<tr>
<td class="content_td">ДЕНЬ<br><input class="input_form" type="text" name="day_in" maxlength="2"><br></td>
<td class="content_td">
МЕСЯЦ<br>
<select class="input_form" name="month_in">
<option value="0">Январь
<option value="1">Февраль
<option value="2">Март
<option value="3">Апрель
<option value="4">Май
<option value="5">Июнь
<option value="6">Июль
<option value="7">Август
<option value="8">Сентябрь
<option value="9">Октябрь
<option value="10">Ноябрь
<option value="11">Декабрь
</select>
</td>
<td class="content_td">ГОД<br><input class="input_form" type="text" name="year_in" maxlength="4"></td>
<td class="content_td">ЧАС<br><input class="input_form" type="text" name="hour_in" maxlength="2"></td>
<td class="content_td">МИНУТА<br><input class="input_form" type="text" name="minute_in" maxlength="2"></td>
<td class="content_td">СЕКУНДА<br><input class="input_form" type="text" name="second_in" maxlength="2"></td>
</tr>
</table>
<p><input id="button" type="button" value="Запустить счетчик" name="start"></p>
<p><b>До заданного момента времени осталось:</b></p>
<table>
<tr>
<td class="content_td">СУТОК<br><input class="input_form" type="text" name="day_out"></td>
<td class="content_td">ЧАСОВ<br><input class="input_form" type="text" name="hour_out"></td>
<td class="content_td">МИНУТ<br><input class="input_form" type="text" name="minute_out"></td>
<td class="content_td">СЕКУНД<br><input class="input_form" type="text" name="second_out"></td>
</tr>
</table>
<p><input id="button" type="button" value="Сброс значeний" name="reset_btn"></p>
</form>
Проблема в том, что при нажатии кнопки "Сброс значений" (или установке курсора в поле date_in) выдается сообщение "Вы ввели неполную дату!". Т. е. скрипт заново начинает выполняться, а не просто выполняет сброс значений. Подскажите, пожалуйста, где у меня ошибка.