Автовыбор SELECT (детский/взрослый), если возраст больше или меньше 10 лет!
Есть форма.
Дата поездки допустим, в формате ДД.ММ.ГГГГ, и форма дата рождения тоже в формате ДД.ММ.ГГГГ. Нужно как-то высчитать возраст и в зависимости от него в поле SELECT подставить нужное значение, или "детский" или "взрослый". В яваскрипте не силен, больше по PHP программингу. Подскажите пожалуйста кто может) буду в долгу) Спасибо! Желательно конкретные примеры! |
|
А даты ввода ручные или используется календарь?
|
<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> |
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. |