Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2018, 17:29
Новичок на форуме
Отправить личное сообщение для Curt54rus Посмотреть профиль Найти все сообщения от Curt54rus
 
Регистрация: 08.08.2018
Сообщений: 6

Автовыбор SELECT (детский/взрослый), если возраст больше или меньше 10 лет!
Есть форма.

Дата поездки допустим, в формате ДД.ММ.ГГГГ, и форма дата рождения тоже в формате ДД.ММ.ГГГГ.
Нужно как-то высчитать возраст и в зависимости от него в поле SELECT подставить нужное значение, или "детский" или "взрослый".

В яваскрипте не силен, больше по PHP программингу.

Подскажите пожалуйста кто может) буду в долгу)

Спасибо! Желательно конкретные примеры!
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2018, 17:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Curt54rus,
https://javascript.ru/forum/misc/124...tml#post314073
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2018, 17:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

А даты ввода ручные или используется календарь?
Ответить с цитированием
  #4 (permalink)  
Старый 08.08.2018, 18:07
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<input type="date">Дата поездки<br>
	<input type="date">Дата рождения<br>
	<select id="sel">
		<option>детский</option>
		<option>взрослый</option>
	</select>
	<script>
		var inp = document.querySelectorAll('input');
		inp.forEach(el=>el.oninput = e =>{
			if(inp[0].value && inp[1].value){
				var vozrast = new Date(new Date(inp[0].value) - new Date(inp[1].value));
				sel.selectedIndex = (vozrast.getYear()-70)>=10?1:0;
			}
		});
	</script>

Последний раз редактировалось j0hnik, 08.08.2018 в 18:29.
Ответить с цитированием
  #5 (permalink)  
Старый 08.08.2018, 18:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Curt54rus,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
</head>

<body>

<select id="sel" name="old" size="1">
<option value="детский">детский</option>
<option value="взрослый">взрослый</option>
</select>

 <script>

function yearsOld(c, b) {  //если b неуказывать расчитает возраст кол-во полных лет на текущую дату
    c = dateFormat(c);
    var a = new Date;
    a.setTime(Date.parse(c));
    var d = a.getFullYear(),
        e = a.getMonth(),
        f = a.getDate();
    b ? a.setTime(Date.parse(dateFormat(b))) : a = new Date;
    return a.getFullYear() - d - (0 > (a.getMonth() - e || a.getDate() - f))
};

function dateFormat(c)
{
  return c.replace(/(\d+)\.(\d+)\.(\d+)/, '$2/$1/$3')
}

function setOld(date1, date2)
{
   var old = yearsOld(date1, date2)
   document.querySelector('#sel').selectedIndex = old > 10 ? 1 : 0
}

var date1 = "06.01.1988",
    date2 = "01.01.2008";

setOld(date1, date2)
 </script>
</body>

</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбрать элементы где значение атрибута меньше или больше заданного Neokortex jQuery 5 03.10.2011 14:23