Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2020, 18:43   #1
mistiklegion
Новичок
Джуниор
 
Регистрация: 30.06.2020
Сообщений: 1
По умолчанию Календарик - изменить программу что бы "год не выбирался из списка, а вводился пользователем"

Здравствуйте, помогите пожалуйста с решением задачки, все нашел, где и что менять, но что то все равно идет не так.
Задача изменить программу что бы "год не выбирался из списка, а вводился пользователем"

Код:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<TITLE>Календарь</TITLE>
<STYLE TYPE="text/css">
BODY
{
background: 9999FF;
color: 000099;
}
</STYLE>
<SCRIPT language="JavaScript">

function setToday()
{
var now = new Date();
var month = now.getMonth();
var year = now.getYear();
document.Control.month.selectedIndex = month;
document.Control.year.selectedIndex = year - 1900;
formCalendar(month, year);
}

function setPrev()
{
var month = document.Control.month.selectedIndex - 1;
document.Control.month.selectedIndex = month;
var year = document.Control.year.selectedIndex + 1900;
formCalendar(month, year);
}

function setNext()
{
var month = document.Control.month.selectedIndex + 1;
document.Control.month.selectedIndex = month;
var year = document.Control.year.selectedIndex + 1900;
formCalendar(month, year);
}

function selectDate()
{
var year = document.Control.year.selectedIndex + 1900;
var month = document.Control.month.selectedIndex;
formCalendar(month, year);
}

function getDaysInMonth(_month,_year)
{
var days;
var daysInMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
days = daysInMonth[_month];
if (_month==2 && isLeapYear(_year)) days = 29;
return days;
}

function isLeapYear (Year)
{
if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0))
return true;
else return false;
}

function formCalendar(month, year)
{
month = parseInt(month);
year = parseInt(year);
D = new Date(year,month,0);
var temp;
temp = "<TABLE ID='calTab' cellspacing=0 cellpadding=0 border=0 style='font-family: serif;'>";
temp += "<TBODY ID='calBody' align='center'>";
temp += "<TR><TD width=25 height=25>Пн<TD width=25>Вт<TD width=25>Ср<TD width=25>";
temp += "Чт<TD width=25>Пт<TD width=25>Сб<TD width=25>Вс</TR><TR>";
var n = D.getDay();
for (i=0; i<n; i++)
{
temp += "<TD>&nbsp</TD>";
}
var num = getDaysInMonth(month,year);
for (i=1; i<=num; i++)
{
if ((i+n)%7 || !i) temp += "<TD height=20>" + i + "</TD>";
else temp += "<TD>" + i + "</TD></TR><TR>";
}
D = new Date(year,month,num-1);
num = D.getDay();
for (i=num; i<6; i++)
{
temp += "<TD>&nbsp</TD>";
}
temp += "</TR></TBODY></TABLE>";
document.all["calTab"].outerHTML = temp;
}
</SCRIPT>
</HEAD>
<BODY onLoad="setToday()">
<CENTER>
<H2>Календарь</H2>
<FORM name="Control">
<SELECT name="month" onChange="selectDate()">
<OPTION>Январь</OPTION>
<OPTION>Февраль</OPTION>
<OPTION><h2>Март</h2></OPTION>
<OPTION>Апрель</OPTION>
<OPTION>Май</OPTION>
<OPTION>Июнь</OPTION>
<OPTION>Июль</OPTION>
<OPTION>Август</OPTION>
<OPTION>Сентябрь</OPTION>
<OPTION>Октябрь</OPTION>
<OPTION>Ноябрь</OPTION>
<OPTION>Декабрь</OPTION>
</SELECT>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
<SELECT name="year" onChange="selectDate()">
<SCRIPT language=JavaScript>
for (var i=2000; i< 2501; i++) document.write("<OPTION>"+i+"</OPTION>");
</SCRIPT>
</SELECT>
</FORM>
<FORM name="Calend">
<TABLE ID="calTab" cellspacing=0 cellpadding=0 border=1 style="font-family: serif;">
<TBODY ID="calBody"></TBODY>
</TABLE>
</FORM>
<FORM name="Buttons">
<INPUT type=button name="prev" value=" << " onClick="setPrev()">
<INPUT type=button name="today" value="Сегодня"
onClick="setToday()">
<INPUT type=button name="next" value=" >> " onClick="setNext()">
</FORM>
</CENTER>
</BODY>
</HTML>
mistiklegion вне форума Ответить с цитированием
Старый 30.06.2020, 19:51   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Нужно select с именем year заменить на input. Текущая реализация тоже имеет проблемы: вместо взятия значения option берется индекс года (выбрано значение 2000, а в расчетах будет 1900), кнопки prev и next плохо отрабатывают на границе года.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу формирования списка из текстового файла, состоящего из строк. Затем требуется удалить из этого списка заданное zenya1998 Паскаль, Turbo Pascal, PascalABC.NET 0 28.04.2016 17:53
Немогу переделать программу что бы массив вводился с руки! GreyF Общие вопросы C/C++ 2 27.11.2012 11:32
Составить программу, которая формирует 2 списка, и написать процедуру присоединения 2го списка к 1му Neitrosha Помощь студентам 7 25.02.2011 21:18
программу, которая вычисляет произведение двух заданных пользователем чисел smile) Помощь студентам 1 15.09.2010 19:19
Как сделать, чтобы по нажатию клавиши вводился не символ, а строка? Сид Общие вопросы Delphi 5 27.12.2009 13:32