使用ajax和PHP检查现有邮件

时间:2014-12-09 10:54:12

标签: javascript php jquery ajax

在我编写邮件时(在点击提交按钮之前),是否有任何方法可以检查我的数据库中是否存在邮件(以注册形式)。

这是我的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>

但我想在提交之前验证邮件(我没有点击任何按钮)

2 个答案:

答案 0 :(得分:2)

我相信#_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>提交。

答案 1 :(得分:-2)

类似的东西

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