предотвратить форматирование от POST до тех пор, пока код javascript не будет удовлетворен

когда я нажимаю кнопку отправки, он запускает alert("empty username") но идет в голову и направляет меня на checklogin.php … как я могу избежать этого и оставить его на странице, если поле не пусто?

 </body> </html> <script type="text/javascript"></script> function RequiredFields(){ var username=document.forms["login"]["username"].value; if (username==""||username==null){ alert("empty username") document.login.username.focus(); if(document.all||document.getElementById){ return false; } } } </script> <form action="checklogin.php" method="POST" onSubmit="RequiredFields()"> Username<input type="text" name="username"/> Password<input type="password" name="password"/> <input type="submit" value="Login" /> </form> </body> </html> 

Используйте этот код

 <input type="submit" value="Login" onclick="return RequiredFields()" /> 

в элементе ввода вы можете добавить обработчик события onsubmit следующим образом:

 <input type="submit" value="submit form" onsubmit="return RequiredFields();"/> 

RequiredFields вернет false, если не все обязательные поля заполнены, и процесс отправки остановится.

Когда вы измените свой submit на это, он не отправит, если RequiredFields вернет false .

 <input type="submit" value="Login" onsubmit="return RequiredFields();"/> 

Я думаю, это может сработать.

  function xyz(event) { event.preventDefault(); // while the function returns false } 

вы также можете использовать атрибут HTML5, чтобы избежать перегрузки javascript. <* input type = "" required > *