Подтвердите форму PHP, используя javascript - PullRequest
0 голосов
/ 10 марта 2020

Я пишу PHP скрипт для практики PHP проверки формы с Javascript. Я ожидаю, что форма будет проверена функцией validate(), указанной в атрибуте onsubmit, но вместо этого я перенаправлюсь на страницу adduser.php, указанную в действии атрибут

Я не вижу, что я пропустил. Любая помощь будет приветствоваться.

function validate(form) {

  alert("Inside validate form")
  return false
}
.signup {
  border: 1px solid #999;
  font: normal 14px Helvetica;
  color: #444;
}
<table class="signup" border="0" cellpadding="2" cellspacing="5" bgcolor="#eeeeee">
  <th colspan="2" align="center">Signup Form</th>
  <form action="adduser.php" method="post" onsubmit="return validate(this);">
    <tr>
      <td>Forename</td>
      <td><input type="text" name="forename" id="forename" maxlength="32"></td>
    </tr>
    <tr>
      <td>Surname</td>
      <td><input type="text" name="surname" id="surname" maxlength="32"></td>
    </tr>
    <tr>
      <td>Username</td>
      <td><input type="text" name="username" id="username" maxlength="16"></td>
    </tr>
    <tr>
      <td>Password</td>
      <td><input type="password" name="password" id="password" maxlength="12"></td>
    </tr>
    <tr>
      <td>Age</td>
      <td><input type="text" name="age" id="age" maxlength="3"></td>
    </tr>
    <tr>
      <td>Email</td>
      <td><input type="text" name="email" id="email" maxlength="64"></td>
    </tr>
    <tr>
      <td colspan="2" align="center">
        <input type="submit" value="Signup">
      </td>
    </tr>

  </form>
</table>

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Такое поведение ожидается. При нажатии кнопки отправки выполняется функция validate, после чего следует поведение по умолчанию для перенаправления на указанный action.

. Чтобы выполнить проверку на стороне клиента, необходимо предотвратить это поведение по умолчанию. добавив form.preventDefault(). После этого выполните проверку и выполните перенаправление самостоятельно, добавив window.location.href = "adduser.php".

0 голосов
/ 10 марта 2020

Несколько вещей:

Возможно, вам не хватает this.preventDefault(), потому что действие по умолчанию - это фактическая отправка формы.

То, что вы хотите выполнить sh, называется проверкой на стороне клиента и, хотя и полезно, не должно заменять проверку на стороне сервера (PHP), поскольку вы никогда не можете доверять вводу от клиента.

...