Так что я пытаюсь изменить стиль окна выбора, если значение не изменяется, т.е. пользователь ничего не выбрал. Это yesnoCheck - это функция, которая показывает дополнительное поле ввода, если выбрана опция «other». Я не думаю, что это влияет на эту проверку формы. Такой же валидатор отлично работает с полем ввода, но он не будет работать с полем выбора.Javascript Проверка формы не работает для элемента select
У меня также есть selectedIndex == 0
, но он не работает.
HTML:
<form name="myForm" method="post" action="" onsubmit="return(validate());">
<label for="lastname">Sukunimesi:</label>
<input type="text" id="lastname" name="lastname" /><br />
<select id="car" name="car" onchange="javascript:yesnoCheck()">
<option id="noCheck" value="none">Valitse automerkkisi</option>
<option id="noCheck" value="1">Lada</option>
<option id="noCheck" value="2">Mosse</option>
<option id="noCheck" value="3">Volga</option>
<option id="noCheck" value="4">Vartburg</option>
<option id="yesCheck" value="other">Muu</option>
</select>
<input type="submit" value="Submit" />
</form>
JS:
<script type="text/javascript">
function yesnoCheck() {
if (document.getElementById("yesCheck").selected) {
document.getElementById("ifYes").style.display = "block";
}
else document.getElementById("ifYes").style.display = "none";
}
function validate() {
if (document.myForm.lastname.value.length < 3) {
document.getElementById("lastname").className = "required";
return false;
}
if (document.myForm.car.value == "none") {
document.getElementById("car").className = "required";
return false;
}
alert ("Everything is fine!");
}
</script>
ID должен быть уникальным – Jonathan
Значение по умолчанию для выбора не является «none», оно пустое, поэтому стиль не изменится. –
Ну, я получил его, удалив «return false»; из первого if-statement – user1589375