Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Автовыбор SELECT (детский/взрослый), если возраст больше или меньше 10 лет! (https://javascript.ru/forum/dom-window/74800-avtovybor-select-detskijj-vzroslyjj-esli-vozrast-bolshe-ili-menshe-10-let.html)

Curt54rus 08.08.2018 17:29

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

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

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

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

Спасибо! Желательно конкретные примеры!

рони 08.08.2018 17:54

Curt54rus,
https://javascript.ru/forum/misc/124...tml#post314073

laimas 08.08.2018 17:57

А даты ввода ручные или используется календарь?

j0hnik 08.08.2018 18:07

<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>

рони 08.08.2018 18:12

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>


Часовой пояс GMT +3, время: 10:39.