即使数据库中存在电子邮件,表单也会提交...如何清除电子邮件字段并要求用户输入不存在的电子邮件ID

时间:2017-08-29 07:42:11

标签: php ajax codeigniter

以下代码仅在电子邮件存在或不存在时提醒用户。我该如何阻止用户提交表单 //这是视图create.php

    $(document).ready(function()
    {
            $('#email').change(function()
            {
                var email = $("#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(email!='')
                {
                    $.ajax({
                        type:"POST",
                        url: "<?php echo site_url('welcome/email_availabilty'); ?>",

                        data:{ email:email },
                        success:function(data)
                        {   
                            if(data)
                            {
                                alert('Email Already Exists');

                            }
                            else
                            {
                                alert('Email Available');
                            } 
                        },
                        return false;
                        error: function(e){
                            console.log(e);
                        }
                    });
                }
            });
        });

//这是controler welcome.php

  function email_availabilty()
   {

        $res=$_POST['email'];
        $this->load->model('queries');
        $data=$this->queries->email_available($res);
        echo $data;
    }

//这是模型queries.php

public function email_available($res)  
    {

        $data=$this->db->query("select email from tbl_posts where email='$res'");
        if($data->num_rows() >= 1)
        {
            return TRUE;
        }
        else
        {
            return FALSE;
        }
    }

如果电子邮件已经存在,请告诉我如何阻止用户提交表单。

3 个答案:

答案 0 :(得分:2)

谢谢你们,伙计们! 我得到了解决方案 添加'$(“#email”)。val('');'之后

提醒('电子邮件已存在');

答案 1 :(得分:0)

如果电子邮件已存在,您应该使用jQuery禁用表单的Send按钮。

更好的是,只有在电子邮件不存在的情况下才应启用它。

答案 2 :(得分:0)

这种情况正在发生,因为您没有相应地returnfalse使用event.preventDefault()true来阻止浏览器的默认行为。

function [...](e) {
    e.preventDefault();
    [...]
}

由于您的AJAX代码中存在随机return false;,因此您也应该有语法错误。

更改,

success:function(data) {   
    if(data) {
        alert('Email Already Exists');

    } else {
        alert('Email Available');
    } 
},
return false; <---- Here...

要,

success:function(data) {   
    if(data) {
        alert('Email Already Exists');

    } else {
        alert('Email Available');
    }

    return false; <---- Here...
},