как сделать?
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <form> <button>></button> <select id="month" name="month"> <option value="01">январь</option> <option value="02">февраль</option> <option value="03">март</option> <option value="04">апрель</option> <option value="05">май</option> <option value="06">июнь</option> <option value="07">июль</option> <option value="08">август</option> <option value="09">сентябрь</option> <option value="10">октябрь</option> <option value="11">ноябрь</option> <option value="12">декабрь</option> </select> <button>></button> <button><</button> <input type="number" id="year" name="year" size="4" min="0" max="2250" step="1"> <button>></button> </form> <script> var d = new Date(); document.addEventListener('DOMContentLoaded', function() { document.querySelector('#month').options[d.getMonth()].selected = true; document.querySelector('#year').value = d.getFullYear(); }); </script> </body> </html> подскажите если не трудно, как сделать чтобы при клике на кнопки со стрелочками у опций переключился селектед, и содержимое поля ввода ввода менялось? |
Русский,
Изменить_месяц, сложно. const Изменить_месяц = вперёд => { const поле = document.getElementById("Месяц"), выделено = поле.selectedIndex; if (вперёд) { if (выделено < 11) поле.selectedIndex++; } else { if (выделено > 0) поле.selectedIndex--; } }; |
:) :write:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <form> <input type=button onclick="Изменить_месяц(false);" value="<" /> <select id="Месяц" name="Месяц"> <option value="01">январь</option> <option value="02">февраль</option> <option value="03">март</option> <option value="04">апрель</option> <option value="05">май</option> <option value="06">июнь</option> <option value="07">июль</option> <option value="08">август</option> <option value="09">сентябрь</option> <option value="10">октябрь</option> <option value="11">ноябрь</option> <option value="12">декабрь</option> </select> <input type=button onclick="Изменить_месяц(true);" value=">" /> <input type=button onclick="Изменить_год(false);" value="<" /> <input type=number size=4 min=0 max=2250 step=1 id="Год" name="Год" /> <input type=button onclick="Изменить_год(true);" value=">" /> </form> <script> const сегодня = new Date(); document.addEventListener('DOMContentLoaded', () => { document.getElementById("Месяц").options[сегодня.getMonth()].selected = true; document.getElementById("Год").value = сегодня.getFullYear(); }); const Изменить_месяц = вперёд => { const поле = document.getElementById("Месяц"); let выделено = Math.max(1, Math.min(10,поле.selectedIndex)); вперёд ? выделено++ : выделено-- поле.selectedIndex = выделено } const Изменить_год = вперёд => { const поле = document.getElementById("Год"); вперёд ? поле.value++ : поле.value--; } </script> </body> </html> |
по идее в ваших двух примерах атрибут селектед должен быть установлен у опции с текущим месяцем и поле с годом заполнено, а отображается в селекте январь и поле пустое...
|
Цитата:
2. искать вариант перевода es6 в es5 или самостоятельно менять стрелочные функции на "обычные" и т.д.? |
babel es5 Try it out
Блондинка,
конвертор в es5 https://babeljs.io/repl Copy & Paste скопировать код es6, получить код es5, заменить одно на другое, добавить полифил перед кодом, если нужно. <script src="https://polyfill.io/v3/polyfill.min.js"></script> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <form> <input type=button onclick="Изменить_месяц(false);" value="<" /> <select id="Месяц" name="Месяц"> <option value="01">январь</option> <option value="02">февраль</option> <option value="03">март</option> <option value="04">апрель</option> <option value="05">май</option> <option value="06">июнь</option> <option value="07">июль</option> <option value="08">август</option> <option value="09">сентябрь</option> <option value="10">октябрь</option> <option value="11">ноябрь</option> <option value="12">декабрь</option> </select> <input type=button onclick="Изменить_месяц(true);" value=">" /> <input type=button onclick="Изменить_год(false);" value="<" /> <input type=number size=4 min=0 max=2250 step=1 id="Год" name="Год" /> <input type=button onclick="Изменить_год(true);" value=">" /> </form> <script> "use strict"; var сегодня = new Date(); document.addEventListener('DOMContentLoaded', function () { document.getElementById("Месяц").options[сегодня.getMonth()].selected = true; document.getElementById("Год").value = сегодня.getFullYear(); }); var Изменить_месяц = function Изменить_месяц(вперёд) { var поле = document.getElementById("Месяц"); var выделено = Math.max(1, Math.min(10, поле.selectedIndex)); вперёд ? выделено++ : выделено--; поле.selectedIndex = выделено; }; var Изменить_год = function Изменить_год(вперёд) { var поле = document.getElementById("Год"); вперёд ? поле.value++ : поле.value--; }; </script> </body> </html> |
рони,
спасибо большое, сейчас всё нормально работает |
кто знает как создать выпадающий список с одной опций для названия сегодн дня недели?
как создать выпадающий список для чисел месяца, что бы количество опций соответствовало количеству дней в месяце, (лишние опции скрыть) ? |
Цитата:
|
Как установить селектед соответствуещему дню недели понятно, а как убрать опции с другими днями недели?
другими словами при выборе даты день недели не играет никакой роли, можно было бы вывести на экран и текстом, но хотелось бы оставить список с одной опцией, чтобы внешне выглядело всё одинаково, все компоненты объекта дата были внутри элементов формы, селекты и инпуты а не просто текст |
Цитата:
|
Я каким боком к этой вашей теме стал иметь отношение? :)
|
laimas,
Я просто взяла кусок кода из вашего поста |
Цитата:
|
laimas,
если не трудно, подскажи на что заменить строчку document.querySelector('#day').options[d.getDay()||7].selected = true;если есть одна пустая опция в списке, чтобы в ней выводился сег день |
Сегодняшний день - день недели?
|
да, день недели
<!DOCTYPE HTML> <html lang="ru"> <head> <meta charset="utf-8"> <title></title> <style> select { height: 26px; } input { height: 22px; padding-left: 5px; } </style> <script> var d = new Date(); document.addEventListener('DOMContentLoaded', function() { document.querySelector('#day').options[d.getDay()||7].selected = true; document.querySelector('#date').options[d.getDate()].selected = true; document.querySelector('#month').options[d.getMonth()+1].selected = true; document.querySelector('#year').value = d.getFullYear(); }); </script> </head> <body> <select class="day" id="day"> <option value="1">Понедельник</option><option value="2">Вторник</option><option value="3">Среда</option><option value="4">Четверг</option><option value="5">Пятница</option><option value="6">Суббота</option><option value="7">Воскресенье</option> </select><br/> <select class="date" id="date"> <option value="0">01</option> <option value="1">02</option> <option value="2">03</option> <option value="3">04</option> <option value="4">05</option> <option value="5">06</option> <option value="6">07</option> <option value="7">08</option> <option value="8">09</option> <option value="9">10</option> <option value="10">11</option> <option value="11">12</option> <option value="12">13</option> <option value="13">14</option> <option value="14">15</option> <option value="15">16</option> <option value="16">17</option> <option value="17">18</option> <option value="18">19</option> <option value="19">20</option> <option value="20">21</option> <option value="21">22</option> <option value="22">23</option> <option value="23">24</option> <option value="24">25</option> <option value="25">26</option> <option value="26">27</option> <option value="27">28</option> <option value="28">29</option> <option value="29">30</option> <option value="30">31</option> </select> <select class="month" id="month"> <option value="1">января</option><option value="2">февраля</option><option value="3">марта</option><option value="4">апреля</option><option value="5">мая</option><option value="6">июня</option><option value="7">июля</option><option value="8">августа</option><option value="9">сентября</option><option value="10">октября</option><option value="11">ноября</option><option value="12">декабря</option> </select> <input class="year" id="year" type="number" size="4" name="year" min="0" max="2400" step="1" value=""> <i>года</i>.<br/> </body></html> в этом коде надо часть html удалить <select class="day" id="day"> <option value="1">Понедельник</option><option value="2">Вторник</option><option value="3">Среда</option><option value="4">Четверг</option><option value="5">Пятница</option><option value="6">Суббота</option><option value="7">Воскресенье</option> </select>и заменить на <select class="day" id="day"> <option value=""></option> </select> |
Ну если день недели, то два способа: 1) то что ранее вы взяли "куском", 2) это непосредственно устанавливать значение списка равное текущему дню, то есть value опции Воскресенье должно быть равно 0.
1) <select id="day"> <option value="">Выберите день</option> <option value="1">Понедельник</option> <option value="2">Вторник</option> <option value="3">Среда</option> <option value="4">Четверг</option> <option value="5">Пятница</option> <option value="6">Суббота</option> <option value="7">Воскресенье</option> </select> <script> document.querySelector('#day').options[new Date().getDay()||7].selected = true; </script> 2) <select id="day"> <option value="">Выберите день</option> <option value="1">Понедельник</option> <option value="2">Вторник</option> <option value="3">Среда</option> <option value="4">Четверг</option> <option value="5">Пятница</option> <option value="6">Суббота</option> <option value="0">Воскресенье</option> </select> <script> document.querySelector('#day').value = new Date().getDay() </script> |
Русский,
мне надо одна опция, а не несколько... |
Удалить и заменить ... тогда это бессмыслица, зачем в данном случае список? Не проще ли текст в любой элемент, например в тот же span?
|
laimas,
Просто когда есть список с внешне смотрится более стильно чем спан |
Цитата:
|
laimas,
не спорю, можно спан оформить стилями, и для каждого браузера использовать своё фоновое изображение, но проще сделать селект, о пользователе? он привык выбирать число месяц и год, но не день недели |
laimas,
не спорю, можно спан оформить стилями, и для каждого браузера использовать своё фоновое изображение, но проще сделать селект, о пользователе? он привык выбирать число месяц и год, но не день недели |
Цитата:
PS. Почитайте о понятии интерфейса. |
laimas,
можно просто написать чем заменить строчку яваскрипта? |
var d = new Date(), days = "Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота".split(" "); document.querySelector('#day').textContent = days[d.getDay()]; А чем будет являться #day решайте сами. |
<!DOCTYPE HTML> <html lang="ru"> <head> <meta charset="utf-8"> <title></title> <style> select { height: 26px; } input { height: 22px; padding-left: 5px; } </style> <script> var d = new Date(); document.addEventListener('DOMContentLoaded', function() { days = "Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота".split(" "); document.querySelector('#day').textContent = days[d.getDay()]; document.querySelector('#date').options[d.getDate()].selected = true; document.querySelector('#month').options[d.getMonth()].selected = true; document.querySelector('#year').value = d.getFullYear(); }); </script> </head> <body> <select class="day" id="day"> <option value=""></option> </select><br/> <select class="date" id="date"> <option value="1">01</option> <option value="2">02</option> <option value="3">03</option> <option value="4">04</option> <option value="5">05</option> <option value="6">06</option> <option value="7">07</option> <option value="8">08</option> <option value="9">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select> <select class="month" id="month"> <option value="0">января</option> <option value="1">февраля</option><option value="2">марта</option> <option value="3">апреля</option> <option value="4">мая</option> <option value="5">июня</option> <option value="6">июля</option> <option value="7">августа</option> <option value="8">сентября</option> <option value="9">октября</option> <option value="10">ноября</option> <option value="11">декабря</option> </select> <input class="year" id="year" type="number" size="4" name="year" min="0" max="2400" step="1" value=""> <i>года</i>.<br/> </body></html> кто подскажет, почему неправильно отображается число? и почему не показывает день недели? |
<select class="day"
<option id="day" |
Кто объяснит почему число отображается на один больше, сегодня ведь 25го
|
Потому, что .options[d.getDate()].selected, это установка опции по ее индексу, а индексы начинаются с 0. Замените на document.querySelector('#date').value = d.getDate();, или если по индексу, то .options[d.getDate()-1].selected
|
laimas,
или изменить опции? у каждой опции установить value на единицу меньше числа, так можно? я просто спрашиваю чтобы знать, это не значит что буду так делать... |
Цитата:
|
laimas,
а тут что не так? <!DOCTYPE HTML> <html lang="ru"> <head> <meta charset="utf-8"> <title></title> <style> select { height: 26px; } input { height: 22px; padding-left: 5px; } </style> <script> var d = new Date(); document.addEventListener('DOMContentLoaded', function() { days = "Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота".split(" "); document.querySelector('#day').textContent = days[d.getDay()]; document.querySelector('#day_01').options[new Date().getDay()||7].selected = true; document.querySelector('#day_02').value = new Date().getDay() document.querySelector('#date').options[d.getDate()-1].selected = true; document.querySelector('#date_01').value = d.getDate(); document.querySelector('#month').options[d.getMonth()].selected = true; document.querySelector('#year').value = d.getFullYear(); }); </script> </head> <body> <select class="day"> <option id="day"></option> </select><br/> <select id="day_01"> <option value="1">Понедельник</option> <option value="2">Вторник</option> <option value="3">Среда</option> <option value="4">Четверг</option> <option value="5">Пятница</option> <option value="6">Суббота</option> <option value="7">Воскресенье</option> </select><br> <select id="day_02"> <option value="1">Понедельник</option> <option value="2">Вторник</option> <option value="3">Среда</option> <option value="4">Четверг</option> <option value="5">Пятница</option> <option value="6">Суббота</option> <option value="0">Воскресенье</option> </select><br> <select class="date" id="date"> <option value="1">01</option> <option value="2">02</option> <option value="3">03</option> <option value="4">04</option> <option value="5">05</option> <option value="6">06</option> <option value="7">07</option> <option value="8">08</option> <option value="9">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select><br/> <select class="date" id="date_01"> <option value="1">01</option> <option value="2">02</option> <option value="3">03</option> <option value="4">04</option> <option value="5">05</option> <option value="6">06</option> <option value="7">07</option> <option value="8">08</option> <option value="9">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select> <select class="month" id="month"> <option value="0">января</option> <option value="1">февраля</option><option value="2">марта</option> <option value="3">апреля</option> <option value="4">мая</option> <option value="5">июня</option> <option value="6">июля</option> <option value="7">августа</option> <option value="8">сентября</option> <option value="9">октября</option> <option value="10">ноября</option> <option value="11">декабря</option> </select> <input class="year" id="year" type="number" size="4" name="year" min="0" max="2400" step="1" value=""> <i>года</i>.<br/> </body></html> |
Встречный вопрос - а почему в третьем случае список отмечает верно?
Вы выдрали этот код где-то, и не учли, что он для списка у которого есть первый не относящийся к дню недели опшен. Опции списка имеют индексы начиная с 0. new Date().getDay()||7 для пятницы вернет 5, а под пятым индексом в вашем списке опция субботы. Кстати, у вас объявлен объект Date ранее, так что далее его получать в коде не стоит. |
Блондинка,
Что ты делаешь можешь объяснить? Посмотри свой первый пост в этой теме и последний. Ты просто так от балды пишешь ради обучения или есть какая-то задача? |
убрала new Data вообще всё не работает
15 строка document.querySelector('#day_01').options[getDay()||7].selected = true; 16 строка document.querySelector('#day_02').value = getDay(); |
Русский,
а там что нибудь работает? могу скинуть скриншот запускаемого примера, может из-за латиницлатиницы и не работает а ? |
Цитата:
document.addEventListener('DOMContentLoaded', function() { var d = new Date(), days = "Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота".split(" "); document.querySelector('#day').textContent = days[d.getDay()]; document.querySelector('#day_01').options[d.getDay()||7].selected = true; document.querySelector('#day_02').value = d.getDay() document.querySelector('#date').options[d.getDate()-1].selected = true; document.querySelector('#date_01').value = d.getDate(); document.querySelector('#month').options[d.getMonth()].selected = true; document.querySelector('#year').value = d.getFullYear(); }); Здесь объявлены две переменные d и days, через запятую, хотя можно написать и так: var d = new Date(); var days = "Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота".split(" "); Но вот так, как у вас: days = "Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота".split(" "); делать не стоит. В остальном надеюсь теперь понятно почему: document.querySelector('#day_01').options[d.getDay()||7].selected = true; с ошибкой, а: document.querySelector('#day_02').value = d.getDay() нормально. |
document.querySelector('#day_01').options[d.getDay()-1||7].selected = true; вот так показывает пятницу |
Часовой пояс GMT +3, время: 05:32. |