Bloquear submit se a verificação em “tempo real” acusar que o e-mail já esta cadastrado
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.
Exemplo, no meu formulário, tenho o campo repita a senha.
Eu estou usando o setCustomValidity para verificar se a senha é a mesma do primeiro campo "senha":
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 ?
<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
Curtidas 0