Как предотвратить отправку формы на основе значения PHP? - PullRequest
0 голосов
/ 10 августа 2011

Я использую Ajax для проверки, является ли имя пользователя в форме регистрации слишком коротким.

Сейчас он просто делает это:

if (str.length<6)
  { 
  document.getElementById("txtHint").innerHTML="Too short";
  return;
  } 

Как добавить действие выше, которое не позволяет пользователю отправить?

<form action="/insert/insert-user.php" method="post">
    <input type="text" name="user"  onkeyup="showHint(this.value)"/>

Ответы [ 3 ]

1 голос
/ 10 августа 2011

В функции CheckUserName добавьте свой код ajax и верните true или false.Если значение равно false, оно не будет отправлено.

  <form action="/insert/insert-user.php" onsubmit="CheckUserName()" method="post">
0 голосов
/ 10 августа 2011

Вы можете попробовать добавить в форму имя формы и событие отправки.

<form name="formName"action="/insert/insert-user.php" method="post" onsubmit="validate()">

function validate() {
    if (document.formName.user.value.length < 7) {
        // Display your message in your division 
         return false;
    }
}

Вы также должны повторить проверку в php, поскольку у пользователя может быть отключен Javascript и для обеспечения безопасности:

if ($_POST['your_submit_button']) {
    if (strlen($_POST['user']) < 7) {
        $submit = false;
        die ("<div style='color: red;'>Too short</div>"); 
    }
}
0 голосов
/ 10 августа 2011

Присвойте вашему div ошибки класс, скажем «ошибка», и при отправке формы вызовите другую функцию, в которой вы проверяете, есть ли в классе ошибок текст JQuery. Если у класса есть текст, просто верните false и ваша форма не будет отправлена ​​

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...