Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431

"Отрывной"календарь, как исправить?

24.02.2024, 01:50. Показов 1838. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<!doctype html>
<html lang="ru">
<head>
<title></title>
<style>
div {
white-space: nowrap;
}
select,
input,
button {
outline: none; 
}
#daymonth {
width: 46px;
}
#elyear {
width: 138px; 
}
</style>
</head>
<body>
<div>
<select id="dayweek"></select>
<button id="minusweek">-</button>
<button id="plusweek">+</button><br>
<input id="daymonth"/>
<button id="minusdaym">-</button>
<button id="plusdaym">+</button><br>
<select id="elmonth"></select>
<button id="minusmonth">-</button>
<button id="plusmonth">+</button><br>
 
<input type="text" id="elyear"></select>
<button id="minusyear">-</button>
<button id="plusyear">+</button><br>
<select id="elera"></select>
<button id="plusera">+</button><br>
<button id="today" style="display: none;">сегодня</button>
<script>
window.addEventListener('DOMContentLoaded', (event) => {
    var selday = document.getElementById('dayweek');
    var seldate = document.getElementById('daymonth');
    var selmonth = document.getElementById('elmonth');
    var inpyear = document.getElementById("elyear");
    var selera = document.getElementById("elera");
    var days = ["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"];
    var months = ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
    var eras = [["до н. э.", "-"], ["н. э.", "+"]];
    var currentDate = new Date();
 
    
    selday.value = currentDate.getDay();
    seldate.value = currentDate.getDate();
    selmonth.value = currentDate.getMonth();
    inpyear.value = currentDate.getFullYear();
    selera.value = "+";
 
    
    seldate.addEventListener('input', function () {
        var val = this.value.replace(/\D/g, '');
        if (val.length > 2) {
            val = val.slice(0, 2);
        }
        this.value = val;
    });
 
    
    function daysInMonth(month, year) {
        return new Date(year, month + 1, 0).getDate();
    }
 
    
    function updateDaysInMonth() {
        var selectedMonth = selmonth.value;
        var selectedYear = inpyear.value;
        var maxDays = daysInMonth(selectedMonth, selectedYear);
        if (parseInt(seldate.value) > maxDays) {
            seldate.value = maxDays;
        }
    }
 
    selmonth.addEventListener('change', updateDaysInMonth);
    inpyear.addEventListener('input', updateDaysInMonth);
 
    
    inpyear.addEventListener('input', function () {
        var val = this.value.replace(/\D/g, '');
        if (val.length < 4) {
            var paddedVal = val.padStart(4, '0');
            this.value = '+' + paddedVal;
        } else if (val.length >= 5 && val.length <= 6 && parseInt(val) < 10000) {
            this.value = '+0' + val;
        }
    });
 
    
    for(var i = 0; i < days.length; i++) {
        var option = document.createElement('option');
        option.value = i;
        option.textContent = days[i];
        selday.appendChild(option);
    }
 
    for(var i = 0; i < months.length; i++) {
        var option = document.createElement('option');
        option.value = i;
        option.textContent = months[i];
        if(i === currentDate.getMonth()) option.selected = true;
        selmonth.appendChild(option);
    }
 
    for(var i = 0; i < eras.length; i++) {
        var option = document.createElement('option');
        option.value = eras[i][1];
        option.textContent = eras[i][0];
        if(eras[i][0] === "н. э.") option.selected = true;
        selera.appendChild(option);
    }
 
    
    document.getElementById('plusweek').addEventListener('click', function() {
        var selectedDate = new Date(inpyear.value, selmonth.value, seldate.value);
        selectedDate.setDate(selectedDate.getDate() + 7);
        selday.value = selectedDate.getDay();
        seldate.value = selectedDate.getDate();
        selmonth.value = selectedDate.getMonth();
        inpyear.value = selectedDate.getFullYear();
    });
 
    document.getElementById('minusweek').addEventListener('click', function() {
        var selectedDate = new Date(inpyear.value, selmonth.value, seldate.value);
        selectedDate.setDate(selectedDate.getDate() - 7);
        selday.value = selectedDate.getDay();
        seldate.value = selectedDate.getDate();
        selmonth.value = selectedDate.getMonth();
        inpyear.value = selectedDate.getFullYear();
    });
 
    document.getElementById('plusdaym').addEventListener('click', function() {
        var selectedDate = new Date(inpyear.value, selmonth.value, seldate.value);
        selectedDate.setDate(selectedDate.getDate() + 1);
        selday.value = selectedDate.getDay();
        seldate.value = selectedDate.getDate();
        selmonth.value = selectedDate.getMonth();
        inpyear.value = selectedDate.getFullYear();
    });
 
    document.getElementById('minusdaym').addEventListener('click', function() {
        var selectedDate = new Date(inpyear.value, selmonth.value, seldate.value);
        selectedDate.setDate(selectedDate.getDate() - 1);
        selday.value = selectedDate.getDay();
        seldate.value = selectedDate.getDate();
        selmonth.value = selectedDate.getMonth();
        inpyear.value = selectedDate.getFullYear();
    });
 
    document.getElementById('plusmonth').addEventListener('click', function() {
        var selectedDate = new Date(inpyear.value, selmonth.value, seldate.value);
        selectedDate.setMonth(selectedDate.getMonth() + 1);
        selday.value = selectedDate.getDay();
        seldate.value = selectedDate.getDate();
        selmonth.value = selectedDate.getMonth();
        inpyear.value = selectedDate.getFullYear();
        updateDaysInMonth();
    });
 
    document.getElementById('minusmonth').addEventListener('click', function() {
        var selectedDate = new Date(inpyear.value, selmonth.value, seldate.value);
        selectedDate.setMonth(selectedDate.getMonth() - 1);
        selday.value = selectedDate.getDay();
        seldate.value = selectedDate.getDate();
        selmonth.value = selectedDate.getMonth();
        inpyear.value = selectedDate.getFullYear();
        updateDaysInMonth();
    });
 
    document.getElementById('plusyear').addEventListener('click', function() {
        var selectedDate = new Date(inpyear.value, selmonth.value, seldate.value);
        selectedDate.setFullYear(selectedDate.getFullYear() + 1);
        selday.value = selectedDate.getDay();
        seldate.value = selectedDate.getDate();
        selmonth.value = selectedDate.getMonth();
        inpyear.value = selectedDate.getFullYear();
        updateDaysInMonth();
    });
 
    document.getElementById('minusyear').addEventListener('click', function() {
        var selectedDate = new Date(inpyear.value, selmonth.value, seldate.value);
        selectedDate.setFullYear(selectedDate.getFullYear() - 1);
        selday.value = selectedDate.getDay();
        seldate.value = selectedDate.getDate();
        selmonth.value = selectedDate.getMonth();
        inpyear.value = selectedDate.getFullYear();
        updateDaysInMonth();
    });
 
    document.getElementById('today').addEventListener('click', function() {
        selday.value = currentDate.getDay();
        seldate.value = currentDate.getDate();
        selmonth.value = currentDate.getMonth();
        inpyear.value = currentDate.getFullYear();
    });
});
</script>
</div>
</body>
</html>
есть такой скрипт, но при загрузке страницы в селекте выбрано воскресенье, хотя сегодня суббота (если ничего не путаю),
вопрос как исправить и вывод дня недели, и селект для дня недели, убрать все опции, кроме одной...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2024, 01:50
Ответы с готовыми решениями:

Как исправить ошибку: формат теста исправить нельзя, только текст программы
class AmericanDate: def __init__(self, y, m, d): self.get_year = str(y) self.get_month = str(m//10)+str(m%10) ...

Скажите, пожалуйста, как исправить исправить код в процедуре
задание такое :Дан одномерный массив. Переместить нулевые элементы массива в начало, сдвинув остальные элементы вправо. Помогите понять,...

Как исправить исправить ошибку в коде
Здравствуйте,помогите пожалуйста исправить ошибку в коде.using System; using System.Threading; namespace Gorokhov_2 { class...

29
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3964 / 2129 / 833
Регистрация: 13.03.2010
Сообщений: 6,993
29.02.2024, 19:46
Студворк — интернет-сервис помощи студентам
voraa, сколько нужно - столько и будут. Не хотите отвечать в теме - пройдите мимо.
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
29.02.2024, 22:23  [ТС]
Цитата Сообщение от voraa Посмотреть сообщение
Да сколько же этим старьем тут махать будут
voraa, sorry, но мне кажется что слово старьё не совсем правильное, наверное не неповеришь, но не так уж и редко встречаюсь с функционирующими страницами, где успешно функционируют методы типа getYear, более четверти века...

так что спецификация ES 5.1 не настолько стара, как кажется на первый взгляд...

Добавлено через 13 минут
хотя, в этом мире всё относительно...
0
Эксперт .NET
 Аватар для Usaga
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,752
01.03.2024, 11:41
Цитата Сообщение от бел ка Посмотреть сообщение
1.) надо запретить ввод всех символов кроме цифр в инпут для дня месяца, и запретить ввод более 2 цифр.
И что? Это гуглится на раз-два.
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
01.03.2024, 14:48  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
но там есть ещё пункты 2, 3, 4, 5, 6
или решил показать что ты более продвинут в js, так я это знаю и так...
0
Эксперт .NET
 Аватар для Usaga
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,752
01.03.2024, 17:08
Цитата Сообщение от бел ка Посмотреть сообщение
но там есть ещё пункты 2, 3, 4, 5, 6
Да хоть 300. Оно всё находится.

Цитата Сообщение от бел ка Посмотреть сообщение
или решил показать что ты более продвинут в js, так я это знаю и так...
Нет, я решил тебе показать, что ответы на твои вопросы уже у тебя есть. Осталось только руку протянуть.
1
168 / 146 / 32
Регистрация: 03.09.2018
Сообщений: 499
01.03.2024, 20:32
Цитата Сообщение от Usaga Посмотреть сообщение
Осталось только руку протянуть.

Не по теме:

У неё компьютер на дровах ES 5 :D Хотя меня сильно напрягает момент, почему бы не заюзать тот же https://babeljs.io/

0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3964 / 2129 / 833
Регистрация: 13.03.2010
Сообщений: 6,993
01.03.2024, 21:30
Про babel ещё в прошлом году было сказано. Не хотят.
0
Эксперт .NET
 Аватар для Usaga
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,752
02.03.2024, 07:00
Цитата Сообщение от Именч Посмотреть сообщение
Хотя меня сильно напрягает момент, почему бы не заюзать тот же https://babeljs.io/
Судя по её подходу к задаче и общему формулированию вопросов, бабель для неё - какая-то космическая технология, разбираться с которой будет не быстрее, чем вот так вот, из глины и палок, решить задачу абы как...
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
06.03.2024, 21:32  [ТС]
где-то видела конвертер григорианского календаря в юлианский и обратно, с помощью юлианской даты...

может попробовать подобное, чтобы получить день недели и остальные части дат до н.э. ?

даже ии в ступоре, не может получить день недели, число месяц год, даты до н.э. используя спецификацию ES 5
0
Эксперт .NET
 Аватар для Usaga
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,752
07.03.2024, 05:39
Цитата Сообщение от бел ка Посмотреть сообщение
даже ии в ступоре
Да тут живые люди-то в ступоре, куда уж ИИ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.03.2024, 05:39

Не пойму как исправить исправить ошибку
subroutine iteration(a,b,c,N) real :: a,b,N,c do while (abs(a-b)&gt;eps.or.N&lt;10) c=(a+b)/2 if...

задачка на множества.значения выводятся и как-будто бегут.как исправить?
задачку составила по приведенным у меня данным,кажется правильно. но почемуто когда включаю компиляцию с выполнением - значения выводятся и...

Scanf считывает enter, как символ конца строки. Как исправить?
Добрый день. Пишу меню для программы в Visual Studio 2015, возникает проблема: scanf запоминает enter, как символ конца строки, и на...

Как избавиться от вируса создающего ярлыки на флэшке? как исправить,подскажите
Проверяла Вебом,нашёл и удалил BackDoor!На этом всё???Но нашёл его на компе,а не на фдэщке

Как исправить лаги программы и как сделать действие по кнопке на клавиатуре
1 Когда захожу в программу и нажимаю на кнопку старт программа просто вылетает как это можно исправить? 2 Как можно сделать бинд на окно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru