рони,
Может тут надо применить конструкцию if else if? Выводить сег. дату в элементах при загрузке страницы, при каждом событии onchange в элементах [day, date, month, year, type_year] проводить проверку, соответствуют ли введённые значения сег. дате и установлены ли селектед у обоих опций, если соответствует то показывать сег дату, если нет то присвоить селектед пустым опциям и удалить значение года наверное так понятно? P. S. проверять надо все пять элементов на соответствие... |
Блондинка,
я пас, я не понимаю, что вы пишите и хотите сделать. |
есть скрипт
document.addEventListener('DOMContentLoaded', function() { var d = new Date(); document.querySelector('#day').value = d.getDay() document.querySelector('#date').value = d.getDate(); document.querySelector('#month').value = d.getMonth()+1; document.querySelector('#year').value = d.getFullYear(); document.querySelector(#type_year) document.querySelector('#startdata').value = d.getFullYear() + '-01-01'; document.querySelector('#stopdata').value = d.getFullYear() + '-12-31'; }); есть элемент <select id="type_year"> <option>год любой</option> <option value="365">простой</option> <option value="366">высокосный</option> </select> как присвоить селектед опции у которой нету value? |
Блондинка,
document.querySelector('#type_year').value = "год любой"; //или так document.querySelector('#type_year').selectedIndex = 0; |
Цитата:
что именно тут непонятно? |
Блондинка,
не могу помочь. |
рони,
я не знаю как объяснить, именно потому что не знаю что именно непонятно один элемент потерял фокус, провели проверку, нашли несовпадение, установили селектед в этом элементе той опции которую выбрал пользователь, другим элементам присвоили селектед пустым опциям, при потере фокуса во втором элементе провели проверку, нашли несоответствие, установили селектед в обоих элементах опциям выбраннным пользователем а в остальных элементах пустым опциям также с третьим элементом и т.д. |
Блондинка,
я не знаю как это сделать. |
Ух, жесть. Нарисуйте макеты по каждому состоянию, иначе никуда не уедите.
|
рони,
а можно м»изменить html код <input type="date" id="startdata"> <input type="date" id="stopdata"> на <select id="startdata"></select> <select id="startmonth"></select> <input id="startyear"> <select id="stopdata"></select> <select id="stopmonth"></select>" <input id="stopyear"> и сделать как тут? <!DOCTYPE HTML> <html> <head> <title></title> <meta charset="utf-8"> <style type="text/css"> html{background: #fff;} body{width: 800px; margin: 20px auto; background: #ddd; padding: 20px; border: 1px solid} .empty{box-shadow: 0 0 10px #f00;} </style> <script> window.onload = function () { var day = new Date, md = (new Date(day.getFullYear(), day.getMonth() + 1, 0, 0, 0, 0, 0)).getDate(), $month_name = "января февраля марта апреля мая июня июля августа сентября октября ноября декабря".split(" "); function set_select(a, c, d, e) { var el = document.getElementsByName(a)[0]; for (var b = el.options.length = 0; b < c; b++) { el.options[b] = new Option(a == 'month' ? $month_name[b] : b + d, b + d); } el.options[e] && (el.options[e].selected = !0) } set_select("day", md, 1, day.getDate() - 1); set_select("month", 12, 1, day.getMonth()); set_select("year", 11, day.getFullYear()-10, 10); document.getElementsByName('hour')[0].value = day.getHours() document.getElementsByName('minute')[0].value = day.getMinutes() var year = document.getElementById('year'); var month = document.getElementById("month"); function check_date() { var a = year.value | 0, c = month.value | 0; md = (new Date(a, c, 0, 0, 0, 0, 0)).getDate(); a = document.getElementById("day").selectedIndex; set_select("day", md, 1, a) }; if (document.addEventListener) { year.addEventListener('change', check_date, false); month.addEventListener('change', check_date, false); } else { year.detachEvent('onchange', check_date); month.detachEvent('onchange', check_date); } } </script> </head> <body> <h3>Дата</h3> <form action="" method="post"> <select name="day" id="day"></select> <select name="month" id="month" ></select> <select name="year" id="year" ></select> <input type="text" name="hour" size="2" value=""> <input type="text" name="minute" size="2" value=""><br><br> <input type="submit" value="Go"> </form> </body> </html> |
Часовой пояс GMT +3, время: 18:17. |