Здравствуйте
Есть форма - два поля, одно из них скрывается/показывается радиобаттонами.
Также есть валидация формы на пустое поле и условие - если див, в котором находится поле скрыт, то это поле не проверять (и соответственно проверять, если див показан):
if(document.getElementById('vm_myadres_input').style.display == ''){//если див скрыт - не проверяем
Проблема заключается в следующем - если див (в нем поле) сначала скрыть, а потом показать, то в див вставляется style="display: block;"
По условию валидации поле не скрыто и должно проверяться на пустое поле, но этого не происходит. Проверить поле не дает display: block;
Как решить проблему?
Вот пример: http://www.glassbus.ru/Untitled-26.html
<div id="err_userfields" class="err_valid" style="color:red; font-weight:bold;"></div>
<form action="index.php" method="post">
<input name="shipping_rate_id" id="zzz1" value="1" type="radio"> Самовывоз <em>(поле Адрес будет скрыто)</em><br>
<input name="shipping_rate_id" id="zzz2" value="2" type="radio"> Доставка по Москве <em>(поле Адрес будет показано)</em><br><br>
<div class="formField" id="vm_myname_input">
<input id="vm_myname_field" name="vm_myname" value="" class="inputbox" type="text"> Имя
</div>
<br>
<div class="formField" id="vm_myadres_input">
<input id="vm_myadres_field" name="vm_myadres" value="" class="inputbox" type="text"> Адрес
</div>
<br>
<input id="submit-form" type="submit" value="Оформить заказ" onclick="javascript: return(submitregistration());" />
</form>
<script type="text/javascript">
function submitregistration(){
//Проверка поля имя
if(document.getElementById('vm_myname_field').value == "") {//проверка на пустое поле
document.getElementById('err_userfields').innerHTML = 'Заполните поле Имя';
return false;
};
//Проверка поля Адрес
if(document.getElementById('vm_myadres_input').style.display == ''){//если див скрыт - не проверяем !!!ЗДЕСЬ ЗАСАДА!!!
if (document.getElementById('vm_myadres_field').value=="") {//проверка на пустое поле
document.getElementById('err_userfields').innerHTML = 'Заполните поле Адрес';
return false;
};
};
return true;
};
</script>
<script type="text/javascript">
$("input").click(function(){
if ($("input:checked").val() == "1") {
$("#vm_myadres_input").hide();
}
else
$("#vm_myadres_input").show();
});
</script>