2013-12-15 72 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)」'maybe? –

+0

如果你在表單域按回車鍵怎麼辦? –

回答

5

您在click事件中返回false。您需要將回調函數綁定到表單的提交事件,因此返回false將取消表單的提交。

在表單字段中按「enter」將提交表單並且可能不會觸發提交按鈕上的點擊事件。

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

我只是在這裏添加return:'onclick =「返回preveri(this)」',它的工作原理應該如此。有沒有任何理由使用你的方法呢? – user2375263

+1

是的:嘗試按住「輸入」,同時聚焦表單輸入。這可能不會觸發某些瀏覽器上的提交按鈕上的點擊事件。但它會觸發表單的提交。 –

相關問題