Доброго времени суток. Помогите пожалуйста разобраться с формой. В интернете нашел код проверки занятости логина. Вставил в свой проект. Все работает, но есть одна проблема. Хочу чтобы при проверке форма не отправлялось если логин занят. А если нет то отправлялось. У меня проверяется занят или нет. Но форма отправляется. Если указываю return false то форма вообще не отправляется, даже если логин свободен. Вот все коды. HTML: <form method="post" id="reg-form"> <input placeholder="E-mail" style="width: 100%;" value="" type="email" name="reg-login" id="reg-login" onblur="checkLogin(this.value)" required><span id="check_login"></span> <input placeholder="Пароль" style="width: 100%;" value="" type="password" name="reg-password" id="reg-password" required> <input placeholder="Повторите пароль" style="width: 100%;" value="" type="password" name="reg-repassword" id="reg-repassword" required> <input type="submit" name="reg-submit" id="reg-submit" value="ЗАРЕГИСТРИРОВАТЬСЯ"> </form> PHP: if (!isset($_SESSION['login']) || !isset($_SESSION['id'])) { if (isset($_POST['reg-submit'])) { $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); if (isset($_POST['reg-login'])) {$reg_username = mysqli_real_escape_string($dbc, trim($_POST['reg-login'])); if ($reg_username == '') {unset($reg_username);}} if (isset($_POST['reg-password'])) {$reg_password = mysqli_real_escape_string($dbc, trim($_POST['reg-password'])); if ($reg_password == '') {unset($reg_password);}} if (isset($_POST['reg-repassword'])) {$reg_repassword = mysqli_real_escape_string($dbc, trim($_POST['reg-repassword'])); if ($reg_repassword == '') {unset($reg_repassword);}} if (isset($reg_username) && isset($reg_password) && isset($reg_repassword) && $reg_password == $reg_repassword) { $reg_password = md5($reg_password); $query = "INSERT INTO users (email,login,password) VALUES ('$reg_username','$reg_username','$reg_password')"; $result = mysqli_query ($dbc, $query); $_SESSION['login'] = $reg_username; setcookie('login', $reg_username, time() + (60 * 60 * 24 * 30)); } } } Код (Javascript): /* Функция, создающая экземпляр XMLHTTP */ function getXmlHttp() { var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } function checkLogin(login) { var xmlhttp = getXmlHttp(); // Создаём объект XMLHTTP xmlhttp.open('POST', 'check_login.php', true); // Открываем асинхронное соединение xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // Отправляем тип содержимого xmlhttp.send("login=" + encodeURIComponent(login)); // Отправляем POST-запрос xmlhttp.onreadystatechange = function() { // Ждём ответа от сервера if (xmlhttp.readyState == 4) { // Ответ пришёл if(xmlhttp.status == 200) { // Сервер вернул код 200 (что хорошо) if (xmlhttp.responseText) {document.getElementById("check_login").innerHTML = "Логин занят!"; return false;} else document.getElementById("check_login").innerHTML = "Логин свободен!"; return true; } } }; } PHP: <?php $login = strtolower(htmlspecialchars($_POST["login"])); // Получаем логин, преобразуем ряд спецсимволов и приводим строку к нижнему регистру $mysqli = new mysqli("localhost", "admin", "admin", "spdb"); // Подключаемся к базе данных $query = "SELECT `id` FROM `users` WHERE `login`='".$mysqli->real_escape_string($login)."'"; // Формируем запрос на поиск пользователя с полученным логином $result_set = $mysqli->query($query); // Отправляем запрос echo $result_set->num_rows != 0; // Если ничего не найдено, то выводим false, иначе true ?>
Поменял submit на button HTML: <input type="button" name="reg-submit" id="reg-submit" value="ЗАРЕГИСТРИРОВАТЬСЯ"> Код (Javascript): function getXmlHttp() { var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } function checkLogin(login) { var xmlhttp = getXmlHttp(); // Создаём объект XMLHTTP xmlhttp.open('POST', 'check_login.php', true); // Открываем асинхронное соединение xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // Отправляем тип содержимого xmlhttp.send("login=" + encodeURIComponent(login)); // Отправляем POST-запрос xmlhttp.onreadystatechange = function() { // Ждём ответа от сервера if (xmlhttp.readyState == 4) { // Ответ пришёл if(xmlhttp.status == 200) { // Сервер вернул код 200 (что хорошо) if (xmlhttp.responseText) { document.getElementById("check_login").innerHTML = "Логин занят!"; $("#reg-submit").bind("click", function() { return false; }); } else { document.getElementById("check_login").innerHTML = "Логин свободен!"; } return true; } } }; } Но ничего не получается. Форма не отправляется. Даже если логин свободен.