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

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

23.06.2025, 19:32. Показов 2342. Ответов 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
3842 / 1691 / 431
Регистрация: 14.03.2022
Сообщений: 4,314
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
123 / 118 / 18
Регистрация: 05.08.2021
Сообщений: 514
24.06.2025, 09:28  [ТС]
krvsa, просто решил посмотреть как можно "устроить такой балаган" именно через Javascript. Стилями CSS и так умею, не интересно
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3842 / 1691 / 431
Регистрация: 14.03.2022
Сообщений: 4,314
24.06.2025, 10:38
Zloyalex100, есть классы. Не меняй style у элементов. Просто присваивай нужный класс.

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

Zloyalex100, ты пока так и не написал какую именно задачу стараешься сделать.
Поскольку код твой жуть какой чудной и разбираться в нем не особо интересно. Да и не факт что он работает как тебе нужно.
0
123 / 118 / 18
Регистрация: 05.08.2021
Сообщений: 514
24.06.2025, 12:50  [ТС]
Datepicker для интереса. Вполне работает так как я и хотел
Миниатюры
Оцените скрипт Datepicker  
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3842 / 1691 / 431
Регистрация: 14.03.2022
Сообщений: 4,314
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
123 / 118 / 18
Регистрация: 05.08.2021
Сообщений: 514
24.06.2025, 15:11  [ТС]
158 строк вместо 206 строк... ИМХО не такое уж и критическое различие
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3842 / 1691 / 431
Регистрация: 14.03.2022
Сообщений: 4,314
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
123 / 118 / 18
Регистрация: 05.08.2021
Сообщений: 514
25.06.2025, 06:22  [ТС]
krvsa, у меня по задумке необходимо сохранение записей в LocalStorage. Что-то не вижу где у вас это сохранение
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
25.06.2025, 08:42
хотелось бы увидеть скрин на февраль 2024
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3842 / 1691 / 431
Регистрация: 14.03.2022
Сообщений: 4,314
25.06.2025, 11:24
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
у меня по задумке необходимо сохранение записей в LocalStorage. Что-то не вижу где у вас это сохранение
Я и ранее тебя спрашивал:
- Что ты там собрался реализовывать?

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

Но ты ранее спрашивал
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
А вот тут каковы успехи?
Вот успехов-то как раз в том коде мало.
0
123 / 118 / 18
Регистрация: 05.08.2021
Сообщений: 514
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
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 23.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru