Не могу поставить текущую дату в тэг Date!
Всем доброе утро!! Захотел использовать штатный календарь для задания даты моего поля формы. Без проблем могу вытащить и узнать value записанное пользователем. Но вот вопрос. У меня этот календарь показывает число заданное мною через value (по умолчанию) а я хочу отображать текущую. Я попытался через JS это сделать но не могу заменить value - свойство innerHTML не работает.
<form> <input type="date" value="2017-10-25" id="calendarForTasks"> </form> function showCurrentDate() { var getCurrentDay = new Date(); var year = getCurrentDay.getFullYear(); var month = getCurrentDay.getMonth(); var day = getCurrentDay.getDate(); var value1 = year + "-" + month + "-" + day ; var valueOld = document.getElementById("calendarForTasks").value; valueOld.innerHTML = value1; } Подскажите, что не так или может у тэга Date есть атрибут, который задаёт текущее время по умолчанию? :-? |
Aleksandr Chirkov, у свойства "value" нет свойства "innerHTML".
function showCurrentDate() { var getCurrentDay = new Date(); var year = getCurrentDay.getFullYear(); var month = getCurrentDay.getMonth(); var day = getCurrentDay.getDate(); var value1 = year + "-" + month + "-" + day ; document.getElementById("calendarForTasks").value=value1; } |
Цитата:
строки 9-10; document.getElementById("calendarForTasks").value = value1 |
Не получается в том то и дело...я специально беру объект date и смотрю формат передачи текущего value он получается такой: 2017-10-25.
делаю переменную идентичной формы допустим: 2017-10-27...и вместо изменения значения, он скидывает на формат типа: дд.мм.гггг...и вот я думаю, что не так. а вот ещё, после того, как я меняю переменную value var valueOld = document.getElementById("calendarForTasks").value = value1; alert(valueOld); смотрю её алертом и вижу, что значение переменной поменялось на верное. |
Aleksandr Chirkov,
<form> <input type="date" value="2017-10-25" id="calendarForTasks"> </form> <script> function showCurrentDate(){ var d = new Date(), new_value=d.toISOString().slice(0,10); document.getElementById("calendarForTasks").value=new_value; } showCurrentDate(); </script> |
Спасибо Nexus, но я по другому решил, только не понятно почему так отрабатывает.
var value1 = year + "-" + (month + 1) + "-" + day ; document.getElementById("calendarForTasks").value=value1; Вот так работает нормально, но это значит, что я не могу поставить туда предыдущий месяц и я не пойму почему так? |
Aleksandr Chirkov, потому что "месяц" должен иметь 2 символа, не 1.
(month<10?'0'+month:month) |
В js я совсем новичек, вот такой вот код получился)
<form> <input type="date" id="calendarForTasks"> </form> <script type="text/javascript"> function showCurrentDate() { var getCurrentDay = new Date(); var year = getCurrentDay.getFullYear(); var month = ''; var month1 = getCurrentDay.getMonth() + 1; if(month1 < 10){ month = '0' + month1 ; }else{ month = month1; } var day = ''; if(getCurrentDay.getDate() < 10){ day = '0' + getCurrentDay.getDate(); } else{ day = getCurrentDay.getDate(); } var value1 = year + "-" + month + "-" + day ; value1.toString(); var valueOld = document.getElementById("calendarForTasks"); valueOld.setAttribute('value', value1); } showCurrentDate(); </script> |
KoKr,
добавьте run [HTML run]ваш код[/HTML] |
рони,
Спасибо, учту на будущее;) не знал как его вставить. |
KoKr,
строка 32 зачем? |
рони, для преобразования переменной value1 в строку, хотя переменная итак возвращает нам строку, в общем строка 32 не нужна. Всему виной спешка и усталость. :(
|
Часовой пояс GMT +3, время: 18:05. |