Bloquear submit se a verificação em “tempo real” acusar que o e-mail já esta cadastrado

03/10/2016

0

Estou usando o AJAX e PHP para verificar em tempo real se o e-mail ja esta cadastrado no meu BD, ele mostra uma mensagem na DIV #resposta, se o e-mail já existe ou não, até ai tudo bem. Mas se o e-mail já existe ele simplesmente continua e aceita o SUBMIT.

    <input id="email" name="email" type="text" value="" placeholder="Digite seu e-mail" required>
    <div id="resposta"></div>

    <script language="javascript">
        var email = $("#email"); 
            email.blur(function() { 
                $.ajax({ 
                    url: 'verificaEmail.php', 
                    type: 'POST', 
                    data:{"email" : email.val()}, 
                    success: function(data) { 
                    console.log(data); 
                    data = $.parseJSON(data); 
                    $("#resposta").text(data.email);
                } 
            }); 
        }); 
    </script>


<?php
#Verifica se tem um email para pesquisa
if(isset($_POST['email'])){ 

    #Recebe o Email Postado
    $emailPostado = $_POST['email'];

    #Conecta banco de dados 
    $con = mysqli_connect("localhost", "root", "", "academia");
    $sql = mysqli_query($con, "SELECT * FROM usuarios WHERE Email = '{$emailPostado}'") or print mysql_error();

    #Se o retorno for maior do que zero, diz que já existe um.
    if(mysqli_num_rows($sql)>0) 
        echo json_encode(array('email' => 'Ja existe um usuário cadastrado com este email')); 
    else 
        echo json_encode(array('email' => 'Usuário valido.' )); 
}
?>


Exemplo, no meu formulário, tenho o campo repita a senha.

<input name="senha_confirma" type="password" value="" placeholder="Confirme sua senha" required oninput="validaSenha(this)">


Eu estou usando o setCustomValidity para verificar se a senha é a mesma do primeiro campo "senha":

<script>
function validaSenha (input){ 
    if (input.value != document.getElementById('txtSenha').value) {
    input.setCustomValidity('As senhas não coincidem!');
  } else {
    input.setCustomValidity('');
  }
}
</script>


Desse modo o usuário não consegue dar SUBMIT antes de corrigir isso. Alguém pode me ajudar a solucionar meu problema com o campo e-mail ?
Dalton

Dalton

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar