Вам нужно изменить это, потому что оно всегда возвращает true:
if(admOptionValue === nameSelect.value){
на это:
if (admOptionValue === "FLIGHT") {
Проблема заключалась в том, что nameSelect.value
идентичен document.getElementById("admOption").value
потому что переменная nameSelect фактически указывает на тот же элемент, и это делается путем вызова функции javascript со ссылкой this
.
Пример:
function admSelectCheck(nameSelect) {
if (nameSelect) {
admOptionValue = document.getElementById("admOption").value;
if (admOptionValue === "FLIGHT") {
document.getElementById("admDivCheck").style.display = "block";
} else {
document.getElementById("admDivCheck").style.display = "none";
}
} else {
document.getElementById("admDivCheck").style.display = "none";
}
}
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Type:</strong>
<select id="admOption" onchange="admSelectCheck(this);">
<option>REGION</option>
<option>FLIGHT</option>
</select>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group" id="admDivCheck" style="display:none;">
<strong>Flights:</strong>
<input type="text" class="form-control" value="flights data" />
</div>
</div>
В вашем случае необходимо добавить условие полетов в оператор if, чтобы отобразить обязательное текстовое поле, если была выбрана опция FLIGHTS
.