29.08.2019, 07:06
|
|
Профессор
|
|
Регистрация: 24.02.2019
Сообщений: 806
|
|
рони,
Может тут надо применить конструкцию if else if?
Выводить сег. дату в элементах при загрузке страницы, при каждом событии onchange в элементах [day, date, month, year, type_year] проводить проверку, соответствуют ли введённые значения сег. дате и установлены ли селектед у обоих опций, если соответствует то показывать сег дату, если нет то присвоить селектед пустым опциям и удалить значение года
наверное так понятно?
P. S. проверять надо все пять элементов на соответствие...
|
|
29.08.2019, 11:06
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Блондинка,
я пас, я не понимаю, что вы пишите и хотите сделать.
|
|
29.08.2019, 11:24
|
|
Профессор
|
|
Регистрация: 24.02.2019
Сообщений: 806
|
|
есть скрипт
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?
|
|
29.08.2019, 13:01
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Блондинка,
document.querySelector('#type_year').value = "год любой";
//или так
document.querySelector('#type_year').selectedIndex = 0;
|
|
29.08.2019, 20:53
|
|
Профессор
|
|
Регистрация: 24.02.2019
Сообщений: 806
|
|
Сообщение от рони
|
Блондинка,
я не понимаю, что вы пишите и хотите сделать.
|
я хочу чтобы при потере фокуса у любого элемента из пперечислгеныхх [day, date,, month, year, type_year], провести проверку на соответствие сегодн дате (первоначальным значениям), и стереть сег дату если первонач значения отличаются от текущих(после потери фокуса)
что именно тут непонятно?
|
|
29.08.2019, 21:56
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Блондинка,
не могу помочь.
|
|
29.08.2019, 21:58
|
|
Профессор
|
|
Регистрация: 24.02.2019
Сообщений: 806
|
|
рони,
я не знаю как объяснить, именно потому что не знаю что именно непонятно
один элемент потерял фокус, провели проверку, нашли несовпадение, установили селектед в этом элементе той опции которую выбрал пользователь, другим элементам присвоили селектед пустым опциям,
при потере фокуса во втором элементе провели проверку, нашли несоответствие, установили селектед в обоих элементах опциям выбраннным пользователем а в остальных элементах пустым опциям
также с третьим элементом и т.д.
|
|
29.08.2019, 22:17
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Блондинка,
я не знаю как это сделать.
|
|
29.08.2019, 23:05
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
Ух, жесть. Нарисуйте макеты по каждому состоянию, иначе никуда не уедите.
__________________
29375, 35
|
|
29.08.2019, 23:25
|
|
Профессор
|
|
Регистрация: 24.02.2019
Сообщений: 806
|
|
рони,
а можно м»изменить 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>
|
|
|
|