Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 25.07.2019, 16:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Потому, что .options[d.getDate()].selected, это установка опции по ее индексу, а индексы начинаются с 0. Замените на document.querySelector('#date').value = d.getDate();, или если по индексу, то .options[d.getDate()-1].selected

Последний раз редактировалось laimas, 25.07.2019 в 16:47.
Ответить с цитированием
  #32 (permalink)  
Старый 25.07.2019, 16:56
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

laimas,
или изменить опции? у каждой опции установить value на единицу меньше числа, так можно? я просто спрашиваю чтобы знать, это не значит что буду так делать...
Ответить с цитированием
  #33 (permalink)  
Старый 25.07.2019, 17:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Блондинка
у каждой опции установить value на единицу меньше числа, так можно?
Зачем? Если выбирать по индексу, то смена значений опций ничего не даст. А если устанавливать значение списка, то ничего менять не надо, дни начинаются с 1, и ваши опции имеют значения начиная с 1.
Ответить с цитированием
  #34 (permalink)  
Старый 25.07.2019, 20:00
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

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>
Ответить с цитированием
  #35 (permalink)  
Старый 25.07.2019, 20:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Встречный вопрос - а почему в третьем случае список отмечает верно?

Вы выдрали этот код где-то, и не учли, что он для списка у которого есть первый не относящийся к дню недели опшен.

Опции списка имеют индексы начиная с 0. new Date().getDay()||7 для пятницы вернет 5, а под пятым индексом в вашем списке опция субботы. Кстати, у вас объявлен объект Date ранее, так что далее его получать в коде не стоит.
Ответить с цитированием
  #36 (permalink)  
Старый 25.07.2019, 20:30
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Блондинка,
Что ты делаешь можешь объяснить? Посмотри свой первый пост в этой теме и последний. Ты просто так от балды пишешь ради обучения или есть какая-то задача?
Ответить с цитированием
  #37 (permalink)  
Старый 25.07.2019, 23:04
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

убрала new Data вообще всё не работает
15 строка document.querySelector('#day_01').options[getDay()||7].selected = true; 
16 строка document.querySelector('#day_02').value = getDay();
Ответить с цитированием
  #38 (permalink)  
Старый 25.07.2019, 23:28
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Русский,
а там что нибудь работает? могу скинуть скриншот запускаемого примера, может из-за латиницлатиницы и не работает а ?
Ответить с цитированием
  #39 (permalink)  
Старый 26.07.2019, 04:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Блондинка
убрала new Data вообще всё не работает
Вместо new Date() нужно d.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()

нормально.
Ответить с цитированием
  #40 (permalink)  
Старый 26.07.2019, 05:48
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

document.querySelector('#day_01').options[d.getDay()-1||7].selected = true;

вот так показывает пятницу
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать калькулятор и с чего начать? A.P. Yellowman Общие вопросы Javascript 3 15.11.2013 21:32
Как сделать реакцию на изменение любого элемента формы. Mik Events/DOM/Window 3 28.07.2011 08:52
Как убрать hover? Либо как сделать стрелки статичными? krusty36 Элементы интерфейса 1 13.07.2011 09:20
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Вопрос как сделать эту панельку Определённых размеров и свойств. jei jQuery 3 09.06.2009 19:14