Я работаю над приложением, в котором я собираю 2 поля ввода в форме, в основном из выберите раскрывающийся список и поле ввода даты .Эти 2 поля связаны между собой тем, что am проверяет значение, выбранное пользователем в раскрывающемся списке до , условно отображая количество лет в средстве выбора даты.
Например, если пользователь выбрал пользователя из выпадающего списка значения Муж или Жена .Я показываю, DatePicker минимум 18 лет и максимум 75 лет.Это работает нормально.
Если пользователь выбрал «Сын» или «Дочь», я хочу показать максимум 18 лет в средстве выбора даты.Например, мы находимся в 2019 году, он должен показывать диапазон между 16 апреля 2001 года и 16 апреля 2019 года. Это не работает должным образом.
Код разметки
<!-- Gender -->
<div class="row">
<label class="fm-input"> Relation :</label>
<select class="fmRelation" id="relation1" required>
<option value="Husband"> Husband </option>
<option value="Wife"> Wife </option>
<option value="Son"> Son </option>
<option value="Daughter"> Daughter </option>
</select>
</div>
<!-- END -->
<!-- Date of Birth-->
<div class="row">
<label class="fm-inputph3"> Date Of Birth :</label>
<input type="text" id="dob" class="fm-inputph3" placeholder="Date of Birth" value="" required>
</div>
<!-- END dob -->
Javascript код
<script>
//Check Date depending on relation
$(function(){
var relation1 = $("#relation1").val();
//User selected husband or wife from the dropdown
if(relation1 == "Husband" || relation1 =="Wife"){
var maxBirthdayDate = new Date();
maxBirthdayDate.setFullYear( maxBirthdayDate.getFullYear() - 18 );
maxBirthdayDate.setMonth(11,31);
$( function() {
$( "#dob" ).datepicker({
changeMonth: true,
changeYear: true,
//yy-mm-dd
dateFormat: 'dd-mm-yy',
//Maximum years to show (75 years) from current year
minDate: maxBirthdayDate + '-75Y',
maxDate: '-18Y',
yearRange: '1900:'+maxBirthdayDate.getFullYear()
});
});
}
//Otherwise son and Daughter was selected
else{
var today = new Date();
today.setFullYear(today.getFullYear() -18);
today.setMonth();
var maxBirthdayDate = new Date();
maxBirthdayDate.setFullYear( maxBirthdayDate.getFullYear() - 18 );
maxBirthdayDate.setMonth(11,31);
$( function() {
$( "#dob" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'dd-mm-yy',
minDate: today,
maxDate: '-18Y'
});
});
//End dob
}
});
</script>