Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
100 / 96 / 17
Регистрация: 05.08.2021
Сообщений: 463

Оцените скрипт Datepicker

23.06.2025, 19:32. Показов 2303. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Datepicker
А вот тут каковы успехи?
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
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <title>HTML5</title>
  <style>
table {
            text-align: center;
            font-family: Verdana;
            border: 0;
        }
        td {
            border: none;
        }
        #march {
            margin-left: 70px;
            font-family: Verdana;
        }
        #div1 {
            margin-top: 20px;
        }
        #save {
            display: none;
        }
        #div2 {
            font-family: Verdana;
            position: absolute;
            top: 10px;
            margin-left: 250px;
        }
        #cl{
          font-family:Verdana;
          font-size:10px;
          margin-left:20px;
        }
}
  </style>
 </head>
 <body>
 <p id="march">МАРТ</p>
<p id='cl'>
Щелкните по дате в календаре
</p>
<table width="200" height="150" border="1" cellpadding="0" cellspacing="0" alt="МАРТА">
    <tbody>
    <tr>
        <td alt="0">ПН</td>
        <td alt="0"></td>
        <td alt="0">2</td>
        <td alt="0">9</td>
        <td alt="0">16</td>
        <td alt="0">23</td>
        <td alt="0">30</td>
    </tr>
    <tr>
        <td alt="0">ВТ</td>
        <td alt="0"></td>
        <td alt="0">3</td>
        <td alt="0">10</td>
        <td alt="0">17</td>
        <td alt="0">24</td>
        <td alt="0">31</td>
    </tr>
    <tr>
        <td alt="0">СР</td>
        <td alt="0"></td>
        <td alt="0">4</td>
        <td alt="0">11</td>
        <td alt="0">18</td>
        <td alt="0">25</td>
        <td alt="0"></td>
    </tr>
    <tr>
        <td alt="0">ЧТ</td>
        <td alt="0"></td>
        <td alt="0">5</td>
        <td alt="0">12</td>
        <td alt="0">19</td>
        <td alt="0">26</td>
        <td alt="0"></td>
    </tr>
    <tr>
        <td alt="0">ПТ</td>
        <td alt="0"></td>
        <td alt="0">6</td>
        <td alt="0">13</td>
        <td alt="0">20</td>
        <td alt="0">27</td>
        <td alt="0"></td>
    </tr>
    <tr>
        <td alt="0">СБ</td>
        <td alt="0"></td>
        <td alt="0">7</td>
        <td alt="0">14</td>
        <td alt="0">21</td>
        <td alt="0">28</td>
        <td alt="0"></td>
    </tr>
    <tr>
        <td alt="0">ВС</td>
        <td alt="0">1</td>
        <td alt="0">8</td>
        <td alt="0">15</td>
        <td alt="0">22</td>
        <td alt="0">29</td>
        <td alt="0"></td>
    </tr>
    </tbody>
</table>
<div id="div1"></div>
<button id="save">СОХРАНИТЬ ИЛИ ОТМЕНИТЬ</button>
<div id="div2">
    <p id="dp">ЗАПИСЬ НА ВЫБРАННЫЙ ДЕНЬ</p>
    <p id="p1"></p>
</div>
  <script>    
  document.body.style.backgroundColor='#FFEAC3'
    let current = null;
    let formerCurrent = [];
    let inStorage = [];
    let currentText = '';
    let tds = document.getElementsByTagName('td');
    let d = ['СБ','ВС']
    for (var i = 0; i < tds.length; i++) {
        n = tds[i].innerHTML;
        if (isNaN(n)){
            if(d.includes(n)) {
                tds[i].style.backgroundColor='red';
                tds[i].style.color='white';
            }
            else {
                tds[i].style.backgroundColor='#86BEEB';
            }
        }
        else {
            tds[i].style.backgroundColor='#FCF8CB';
        }
    }
    for (var i = 0; i < tds.length; i++) {
        tds[i].onclick = function () {
            if (!isNaN(this.innerHTML) && this.innerHTML != '') {
                let dateKey = this.innerHTML + ' ' + this.parentNode.parentNode.parentNode.getAttribute('alt');
                //alert(localStorage.getItem(dateKey));
                console.log(inStorage);
                formerCurrent.push(this);
                let fc = formerCurrent[formerCurrent.length - 2]
                if (formerCurrent.length >= 2) {
                    if (inStorage.includes(fc.innerHTML)) {
                        fc.style.backgroundColor = '#73EB3B';
                        fc.style.color = 'black';
                    }
                    else {
                        fc.style.backgroundColor = '#FCF8CB';
                        fc.style.color = 'black';
                    }
                }
                if (div1.childElementCount == 2) {
                    div1.removeChild(div1.firstElementChild);
                    div1.removeChild(div1.firstElementChild);
                }
                if (!div1.childElementCount && !isNaN(this.innerHTML) && this.innerHTML != '') {
                    current = this;
                    this.alt = '1';
                    this.style.backgroundColor = '#34b1eb';
                    this.style.color = 'white';
                    let pm = document.createElement('p');
                    pm.style.fontFamily = 'Verdana';                    
                    pm.innerHTML = dateKey;
                    save.style.display = 'block';
                    let fm = document.createElement('form');
                    let text = document.createElement('textarea');
                    text.setAttribute('id', 'text');
                    text.rows = '10'
                    text.cols = '50'
                    div1.appendChild(pm);
                    fm.appendChild(text);
                    div1.appendChild(fm);
                    currentText = dateKey;
                    let getNote = localStorage.getItem(dateKey);
                    p1.innerHTML = getNote;
                }
            }            
        }
    }
    save.onclick = function () {
        cur = text.value;
        if (text.value != '') {
            localStorage.setItem(currentText,cur);
            inStorage.push(current.innerHTML);
        }
        if (localStorage.getItem(currentText) != null){
            current.style.backgroundColor = '#73EB3B';
            current.style.color = 'black';
        }
        else {
            current.style.backgroundColor = '#FCF8CB';
            current.style.color = 'black';
        }
        div1.removeChild(div1.firstElementChild);
        div1.removeChild(div1.firstElementChild);
        this.style.display='none'
    }
  </script>
 </body>
</html>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.06.2025, 19:32
Ответы с готовыми решениями:

Как добавить к себе в скрипт air-datepicker?
Хотел добавить календарь air-datepicker который взял отсюда Скачал и добавил в header сам...

Datepicker для динамически создаваемых input
У меня скрипт который создает древо в виде инпутов, они создаются соответственно динамически....

Не подключается (или не работает) datepicker
Вот архив со страницей, Почему-то не работает вкусняшка &quot;datepicker&quot; подключал все файлы из папки...

12
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,158
23.06.2025, 20:14
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
А вот тут каковы успехи?
Написал бы что именно там реализовывал...

Программка написана очень по дилетантски.

Добавлено через 14 минут
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    let d = ['СБ','ВС']
    for (var i = 0; i < tds.length; i++) {
        n = tds[i].innerHTML;
        if (isNaN(n)){
            if(d.includes(n)) {
                tds[i].style.backgroundColor='red';
                tds[i].style.color='white';
            }
            else {
                tds[i].style.backgroundColor='#86BEEB';
            }
        }
        else {
            tds[i].style.backgroundColor='#FCF8CB';
        }
    }
Ты устроил такой балаган для того чтобы "раскрасить" названия дней недели... А ведь такое можно сделать просто стилями в css и не какого кода писать не нужно.

Добавлено через 5 минут
Обработчик на таблицу нужен один.
Далее твой алгоритм просто жуть.
1
100 / 96 / 17
Регистрация: 05.08.2021
Сообщений: 463
24.06.2025, 09:28  [ТС]
krvsa, просто решил посмотреть как можно "устроить такой балаган" именно через Javascript. Стилями CSS и так умею, не интересно
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,158
24.06.2025, 10:38
Zloyalex100, есть классы. Не меняй style у элементов. Просто присваивай нужный класс.

Цитата Сообщение от Zloyalex100 Посмотреть сообщение
Стилями CSS и так умею, не интересно
Зачем делать просто... Когда можно сложно. (с)

Zloyalex100, ты пока так и не написал какую именно задачу стараешься сделать.
Поскольку код твой жуть какой чудной и разбираться в нем не особо интересно. Да и не факт что он работает как тебе нужно.
0
100 / 96 / 17
Регистрация: 05.08.2021
Сообщений: 463
24.06.2025, 12:50  [ТС]
Datepicker для интереса. Вполне работает так как я и хотел
Миниатюры
Оцените скрипт Datepicker  
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,158
24.06.2025, 15:07
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
Вполне работает так я и хотел
Аналог...
Посмотри как мало строк теперь.

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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Тест</title>
 
</head>
<body>
 
 
<style>
table {
    text-align: center;
    font-family: Verdana;
    border: 0;
}
td{
    border: none;
}
#march {
    margin-left: 70px;
    font-family: Verdana;
}
#div1 {
    margin-top: 20px;
}
#save {
    display: none;
}
#div2 {
    font-family: Verdana;
    position: absolute;
    top: 10px;
    margin-left: 250px;
}
#cl{
    font-family:Verdana;
    font-size:10px;
    margin-left:20px;
}
</style>
 
 
<p id="month">МАРТ</p>
<p id='cl'>Щелкните по дате в календаре</p>
<table width="200" height="150" border="1" cellpadding="0" cellspacing="0">
<tr>
    <td>ПН</td>
    <td></td>
    <td>2</td>
    <td>9</td>
    <td>16</td>
    <td>23</td>
    <td>30</td>
</tr>
<tr>
    <td>ВТ</td>
    <td></td>
    <td>3</td>
    <td>10</td>
    <td>17</td>
    <td>24</td>
    <td>31</td>
</tr>
<tr>
    <td>СР</td>
    <td></td>
    <td>4</td>
    <td>11</td>
    <td>18</td>
    <td>25</td>
    <td></td>
</tr>
<tr>
    <td>ЧТ</td>
    <td></td>
    <td>5</td>
    <td>12</td>
    <td>19</td>
    <td>26</td>
    <td></td>
</tr>
<tr>
    <td>ПТ</td>
    <td></td>
    <td>6</td>
    <td>13</td>
    <td>20</td>
    <td>27</td>
    <td></td>
</tr>
<tr>
    <td>СБ</td>
    <td></td>
    <td>7</td>
    <td>14</td>
    <td>21</td>
    <td>28</td>
    <td></td>
</tr>
<tr>
    <td>ВС</td>
    <td>1</td>
    <td>8</td>
    <td>15</td>
    <td>22</td>
    <td>29</td>
    <td></td>
</tr>
</table>
<div id="day"></div>
<button id="save">СОХРАНИТЬ ИЛИ ОТМЕНИТЬ</button>
<div id="div2">
    <p id="dp">ЗАПИСЬ НА ВЫБРАННЫЙ ДЕНЬ</p>
    <p id="p1"></p>
</div>
 
<style>
    body {
        background-color: #FFEAC3;
    }
    #month {
        margin-left: 70px;
        font-family: Verdana;
    }
    table {
        background-color: #FCF8CB;
    }
    td:first-child {
        background-color: #86BEEB;
    }
    tr:nth-last-child(-n + 2) td:first-child {
        background-color: red;
    }
    #day {
        margin-top: 20px;
    }
    .act {
        color: white;
        background-color: #34b1eb;
    }
 
</style>
 
<script>
const ot = document.querySelector('table')
ot.addEventListener('click', e => {
    const o = e.target.closest('td')
    if (!o) return
    const v = +o.textContent
    if (!v) return
    day.textContent = v + ' ' + month.textContent
    ot.querySelectorAll('.act')?.forEach(o => o.classList.remove('act'))
    o.classList.add('act')
})
</script>
</body>
</html>
Добавлено через 3 минуты
Zloyalex100, а то потом ходят разные байки - де JS корявый ЯП.
1
100 / 96 / 17
Регистрация: 05.08.2021
Сообщений: 463
24.06.2025, 15:11  [ТС]
158 строк вместо 206 строк... ИМХО не такое уж и критическое различие
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,158
24.06.2025, 15:37
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
158 строк вместо 206 строк...
Ты не те строки сравниваешь.
Поскольку я много чего твоего не удалял. Например ту же таблицу, которую как раз можно выводить скриптом.
Ты сравнивай содержимое в тегах script.
0
Заблокирован
24.06.2025, 16:03
Zloyalex100, вот в одну строку
JavaScript
1
const ot=document.querySelector("table");ot.addEventListener("click",t=>{let e=t.target.closest("td");if(!e)return;let c=+e.textContent;c&&(day.textContent=c+" "+month.textContent,ot.querySelectorAll(".act")?.forEach(t=>t.classList.remove("act")),e.classList.add("act"))});
0
100 / 96 / 17
Регистрация: 05.08.2021
Сообщений: 463
25.06.2025, 06:22  [ТС]
krvsa, у меня по задумке необходимо сохранение записей в LocalStorage. Что-то не вижу где у вас это сохранение
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
25.06.2025, 08:42
хотелось бы увидеть скрин на февраль 2024
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,158
25.06.2025, 11:24
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
у меня по задумке необходимо сохранение записей в LocalStorage. Что-то не вижу где у вас это сохранение
Я и ранее тебя спрашивал:
- Что ты там собрался реализовывать?

Сохранение в localStorage это плюс еще одна строка...
В любом случае, если тебе твой код милее и краше - это уже твое дело.

Но ты ранее спрашивал
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
А вот тут каковы успехи?
Вот успехов-то как раз в том коде мало.
0
100 / 96 / 17
Регистрация: 05.08.2021
Сообщений: 463
28.07.2025, 16:00  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Ты устроил такой балаган для того чтобы "раскрасить" названия дней недели
Еще у братьев Гримм есть такая заява ==> "Единым махом семерых побивахом"
https://ru.wikipedia.org/wiki/... 0%BA%D0%B0
Вместо того что бы семь раз подсоединять класс CSS
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.07.2025, 16:00
Помогаю со студенческими работами здесь

ищу DatePicker с временем, списком выбора месяца и возможностью смены месяца после выбора числа
Привет. Ищу хороший DatePicker с указанными функциям. Немного расшифрую, что от него нужно: 1)...

В одной форме много datepicker, но работает только первый
&lt;p&gt;DOH:&lt;br/&gt; &lt;input name=&quot;doh&quot; type=&quot;text&quot; id=&quot;datepicker&quot; /&gt; ...

Как поменять в bootstrap-datepicker формат времени
Добрый вечер! Ребята наверняка кто нибудь из вас работал с bootstrap-datepicker. Как поменять в...

Многочисленные $('selector').datepicker();
Всем привет! У меня на странице списком выводятся инпут поля для даты. На эту же страницу я могу...

Работа с datepicker
Использую datepicker на сайте Смотреть на сайте Необходимо заблокировать некоторые даты ( те...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru