Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ajax js和php进行onkeypress电子邮件验证_Php_Javascript_Ajax_Validation_Email - Fatal编程技术网

使用ajax js和php进行onkeypress电子邮件验证

使用ajax js和php进行onkeypress电子邮件验证,php,javascript,ajax,validation,email,Php,Javascript,Ajax,Validation,Email,前言:这最终会扩展到一张报名表,但我更关心的是先完成一部分 现在,您将无法连接到我的服务器,但我确实需要帮助,或者至少需要解释为什么此代码不起作用。我已经为此工作了一周左右,没有发现任何与我的问题类似的东西 HTML: 问题肯定出在ajax调用上,但这里是php部分(尚未处于工作状态): 我知道它有很多代码,但我真的很感激你的任何意见。 此外,以下是使用格式正确的电子邮件时页面的响应: 电邮:asdfasdf@yahoo.com 正确..检查 所以我知道它肯定不会进入myRequest.re

前言:这最终会扩展到一张报名表,但我更关心的是先完成一部分

现在,您将无法连接到我的服务器,但我确实需要帮助,或者至少需要解释为什么此代码不起作用。我已经为此工作了一周左右,没有发现任何与我的问题类似的东西

HTML:

问题肯定出在ajax调用上,但这里是php部分(尚未处于工作状态):


我知道它有很多代码,但我真的很感激你的任何意见。 此外,以下是使用格式正确的电子邮件时页面的响应:

电邮:asdfasdf@yahoo.com
正确..检查


所以我知道它肯定不会进入myRequest.readystatechange函数,因为如果它在应该返回“无效电子邮件”的位置,至少会返回“无效电子邮件”。

您的ajax请求在readystatechange中。这意味着永远不会调用ajax请求

尝试以下方法:

function emailCheck(inputvalue) 
{   
var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
var span=document.getElementById("emailError");
if(pattern.test(inputvalue))
{         
    span.innerHTML="true..checking";    
    var myRequest = new XMLHttpRequest();
    var response = myRequest.reponseText;
    myRequest.onreadystatechange = function()
    {
        if(myRequest.readyState == 4 && myRequest.status == 200)
        {
            if(response.test(inputvalue))
            {
            span.innerHTML="already in use";
            }
            else
            {
            span.innerHTML="valid";
            }
        }

    }
    myRequest.open("POST", "email.php", true);
    myRequest.send();
}
else
{   
    span.innerHTML="not valid email"; 
}
}
我可以看到你的代码有另一个问题。该电子邮件在填写完成之前仍然有效


something@domain.c即使我需要通知我也有效something@domain.com. 使用按钮请求验证

哦,哇,谢谢。我已经为ajax部分创建了一个单独的函数,并创建了一个“if matches pattern show validate button”。至于匹配的问题:我本来打算使用一种不同的验证检查技术,但我使用的盒子仅限于我的学校网络(因此我无法访问互联网),因此我发现正则表达式的东西最有用。再次感谢
function emailCheck(inputvalue) 
{    
    var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
    var span=document.getElementById("emailError");
    if(pattern.test(inputvalue))
    {         
        span.innerHTML="true..checking";    
        var myRequest = new XMLHttpRequest();
        var response = myRequest.reponseText;
        myRequest.onreadystatechange = function()
        {
            if(myRequest.readyState == 4 && myRequest.status == 200)
            {
                if(response.test(inputvalue))
                {
                    span.innerHTML="already in use";
                }
                else
                {
                    span.innerHTML="valid";
                }
            }

            myRequest.open("POST", "email.php", true);
            myRequest.send();
        }
    }
    else
    {   
        span.innerHTML="not valid email"; 
    }
}
<?php
mysqli_query($con,"select user_email from email");
?>
function emailCheck(inputvalue) 
{   
var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
var span=document.getElementById("emailError");
if(pattern.test(inputvalue))
{         
    span.innerHTML="true..checking";    
    var myRequest = new XMLHttpRequest();
    var response = myRequest.reponseText;
    myRequest.onreadystatechange = function()
    {
        if(myRequest.readyState == 4 && myRequest.status == 200)
        {
            if(response.test(inputvalue))
            {
            span.innerHTML="already in use";
            }
            else
            {
            span.innerHTML="valid";
            }
        }

    }
    myRequest.open("POST", "email.php", true);
    myRequest.send();
}
else
{   
    span.innerHTML="not valid email"; 
}
}