使用 ajax 和 PHP 检查现有邮件

Check existing mail with ajax and PHP

本文关键字:检查 ajax PHP 使用      更新时间:2023-09-26

在我编写邮件时(在我单击提交 buttom 之前),有什么方法可以检查邮件(在注册表中)是否存在于我的数据库中。

这是我的javascript函数,当我单击提交按钮时,它运行良好:

<script type="text/javascript">
 $(document).ready(function(){ //newly added 
    $('#_submit').click(function() {alert('in');
      var emailVal = $('#mail').val(); // assuming this is a input text field
       $.post('checkemail.php', {'mail' : emailVal}, function(data) {
         if(data=='exist') return false;
         else $('#form1').submit();
      });
    });
 });
</script>

但我想在提交之前验证邮件(无需单击任何按钮)

我相信#_submit是一个提交按钮。在这种情况下,您的<from>将在不等待 ajax 调用完成的情况下提交,因为这是一个异步任务。

为了解决此问题,您应该默认阻止<form>提交,并在 ajax 调用完成后,根据响应决定是否提交表单。

$(document).ready(function() { //newly added 
  $('#_submit').click(function(e) {
    e.preventDefault(); // prevent default submission
    alert('in, submission prevented - waiting for ajax response');
    var emailVal = $('#mail').val(); // assuming this is a input text field
    $.post('checkemail.php', {
      'mail': emailVal
    }, function(data) {
      if (data == 'exist')
        return false;
      else
        $('#form1').submit();
    });
  });
});

或者,您可以简单地使用type="button"按钮,这样它就不会触发<form>提交。

类似的东西

$.ajax(url).done(function(response) {
if (response === true) {
     $(form).submit();
} else {
   console.log("not allowed");
});