首页 > 解决方案 > 使用ajax在Php中以“电子邮件已存在”条件提交表单

问题描述

我正在使用 ajax Php,我想使用 ajax(在模糊功能上)检查电子邮件可用性我的代码工作正常,显示电子邮件是否存在,但我的表单提交甚至“电子邮件已经存在”消息显示,我只想要那个表单如果我输入现有电子邮件,则不应提交,这是我的代码,我错在哪里?

<script type = "text/javascript" >
    $(document).ready(function() {
        /// make loader hidden in start
        $('#loading').hide();
        $('#email').blur(function() {
            var email_val = $("#email").val();

            var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
            if (filter.test(email_val)) {
                // show loader
                $('#loading').show();
                $.post("<?php echo site_url()?>/Register/email_check", {
                    email: email_val
                }, function(response) {
                    alert(response);
                    $('#loading').hide();
                    //$('#message').html('').html(response).show().delay(4000).fadeOut();
                    if (response.trim() == '1') {
                        $('#failuremsg').show().delay(4000).fadeOut();

                    } else {

                        $('#successmsg').show().delay(4000).fadeOut();
                    }
                });
                return false;
            }
        });

    }); 
</script>

标签: phpajax

解决方案


将表单上的提交按钮替换为

<button id="submit-form">Submit</button>

当所有检查都通过后,在您的主代码中设置一个 valid=true 变量

添加一些jQuery

$( "#submit-form" ).click(function() {
  if(validated){
     $( "#yourForm" ).submit();
  }else{
   return false;
  }
};

推荐阅读