2013-12-15 6 views
0

Ниже приведен код простой формы html и код javascript для проверки, являются ли поля пустыми или нет, когда пользователь нажимает кнопку отправки.Форма отправляется, даже если проверка не завершена

Проблема заключается в том, что форма отправлена, даже если необходимые поля не заполнены. Как вы можете видеть, я просто начинаю с кодировкой JS, поэтому я не знаю, если проблема в операторах if/else, где-то еще в JS-коде или если форма не настроена должным образом.

<script> 
    function preveri(pov){ 
     var preveriime = pov.ime.value; 
     var preverirojstvo = pov.rojstvo.value; 
     var preverimail = pov.email.value; 
     var preverikategorijo = pov.kategorija.value; 

     if (preveriime == "") { 
      document.getElementById('imeA').style.display="block";            
     }          
     if (preverirojstvo == "") { 
      document.getElementById('datumA').style.display="block"; 
     } 
     if (preverimail == "") { 
      document.getElementById('emailA').style.display="block"; 
     } 
     if (preverikategorijo == "") { 
      document.getElementById('kategorijaA').style.display="block"; 
     } 

     if(preveriime != "" && preverirojstvo != "" && preverimail != "" && preverikategorijo != ""){                    
      document.pov.submit(); 
     } 
     else{ 
      return false; 
     } 
    } 

</script> 

<h4>OBRAZEC ZA SPLETNE PRIJAVE</h4> 
<br/> 
<form name="pov" method="POST" action="thankUPage.php"> 
    <input name="ime" type="text" placeholder="Ime in Priimek"></input> 
    <input name="rojstvo" type="text" placeholder="Datum rojstva"></input> 
    <input name="email" type="text" placeholder="E-pošta"></input> 
    <input name="kategorija" type="text" placeholder="Kategorija"></input> 
    <textarea name="povprasaj" placeholder="Povprašaj"></textarea> 
    <input type="submit" name="submit" id="submit" value="Pošlji!" onclick="preveri(pov)" /> 
</form> 
<div id="imeA" class="imeA">Obvezno polje!</div> 
<div id="datumA" class="datumA">Obvezno polje!</div> 
<div id="emailA" class="emailA">Obvezno polje!</div> 
<div id="kategorijaA" class="kategorijaA">Obvezno polje!</div> 
</div> 

Tnx заранее!

+1

'onclick =" return preveri (this) "' возможно? –

+0

Что делать, если вы нажмете enter в поле формы? –

ответ

5

Вы возвращаете false на событие click. Вам необходимо привязать функцию обратного вызова к событию отправки формы, поэтому возврат false приведет к отмене представления формы.

Нажатие «enter» в поле формы отправит форму и не может инициировать событие click на кнопке submit.

<form name="pov" method="POST" action="thankUPage.php" onsubmit="return preveri(this);" > 
+0

Я только что добавил сюда: 'onclick = "return preveri (this)", и он работает так, как должен. Есть ли причина использовать ваш метод вместо этого? – user2375263

+1

Да: попробуйте нажать «enter», когда вы фокусируете ввод формы. Это может не вызвать событие click на кнопке отправки в некоторых браузерах. Но это приведет к представлению формы. –

Смежные вопросы