когда я нажимаю кнопку отправки, он запускает 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 > *