Я пытаюсь остановить или отключить кнопку отправки, если пользователь получил сообщение о том, что письмо существует в базе данных.Запрос на предотвращение формы на отправке ответа назад с php
Я постарался установить, если между ними, но не повезло. На jquery нет гуру.
Некоторые говорят, что я должен использовать e.preventDefault(); но где я его положу? Пробовали повсюду, но либо скрипты не работают, либо пользователь может зарегистрироваться в любом случае.
Может быть, лучше всего проверить все, начиная с php ?? Просто подумал, что jQuery лучше использовать плагин Validate.
Любой ключ? Спасибо =)
У этого сценария:
Jquery:
$("#email").keyup(function (e){
clearTimeout(x_timer);
var e_mail = $(this).val();
if (e_mail.length > 4) {
x_timer = setTimeout(function(){
check_email_ajax(e_mail);
}, 1000);
}
});
function check_email_ajax(e_mail){
$("#email-result").html('<img src="../cms/assets/images/loading.gif" width="20px" height="20px" />');
$.post('ajax/register.ajax.php', {'email':e_mail}, function(data) {
$("#email-result").html(data);
});
}
PHP:
if(isset($_POST["email"])) {
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
die();
}
$email = filter_var($_POST["email"], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW|FILTER_FLAG_STRIP_HIGH);
$statement = $link->prepare("SELECT email FROM FF_Users WHERE email=?");
$statement->bind_param('s', $email);
$statement->execute();
$statement->bind_result($email);
if($statement->fetch()){
die('<i class="fa fa-times-circle" style="color:red;" aria-hidden="true"></i> <small>(taken)</small>');
}else{
die('<i class="fa fa-check" style="color:green;" aria-hidden="true"></i> <small>(Yeey :-))</small>');
}}
Рассматривали ли вы _enabling_ кнопку отправки после того, как электронная почта проверяется , и отключить его в противном случае? –
@XerenNarcy Да, как и я написал, он пытался скрыть кнопку отправки (или показать), но не повезло. – KommerSnart