html javascript电子邮件图像

html javascript电子邮件图像,javascript,html,Javascript,Html,下面是我的验证脚本。输入电子邮件时,为什么不显示一个缩影,红色X图像,但不正确?我卡住了。请帮忙 <form name="validation" onSubmit="return checkbae()"> <input type="text" size=18 onkeyup="return checkbae()" name="email"> <span

下面是我的验证脚本。输入电子邮件时,为什么不显示一个缩影,红色X图像,但不正确?我卡住了。请帮忙

<form name="validation" onSubmit="return checkbae()">
    <input type="text" size=18 onkeyup="return checkbae()" name="email">
    <span id="email"   class="email"></span>
    <input type="submit" value="Submit">
</form>
<script language="JavaScript1.2">
    function checkemail() {
        var messageg = document.getElementById('email');
        var str = document.validation.email.value
        var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]        {2})?)$/i
        if (filter.test(str))
            testresults = true
        else {
            messageg.style.color = red;
            messageg.innerHTML = "\u2718"
            testresults = false
        }
        return (testresults)
    }
    function checkbae() {
        if (document.layers || document.getElementById || document.all)
            return checkemail()
        else
            return true
    }
</script>

函数checkemail(){
var messageg=document.getElementById('email');
var str=document.validation.email.value
var filter=/^([\w-]+(?:\[\w-]+)*)@((?:[\w-]+\)*\w[\w-]{0,66})\.([a-z]{2,6}:(\.[a-z]{2})$/i
if(过滤测试(str))
testresults=true
否则{
messageg.style.color=红色;
messageg.innerHTML=“\u2718”
testresults=false
}
返回(测试结果)
}
函数checkbae(){
if(document.layers | | document.getElementById | | document.all)
返回checkemail()
其他的
返回真值
}

我不确定这是否能帮到你,但这就是我想到的

<form name="validation" onSubmit="return checkbae();" method="post" >
    <input type="text" size="18" name="email" />
    <span id="email" class="email"></span>
    <input type="submit" value="Submit"/>
</form>



function checkemail() {
    var str = document.validation.email.value;
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    var testresults;
    if (filter.test(str))
        testresults = true;
    else {
        $(".email").text("\u2718").css("color", "red");
        testresults = false;
    }
    return (testresults);
}
function checkbae() {
    if (document.layers || document.getElementById || document.all)
        return window.checkemail();
    else
        return true;
}

函数checkemail(){
var str=document.validation.email.value;
var filter=/^([\w-]+(?:\[\w-]+)*)@((?:[\w-]+\)*\w[\w-]{0,66})\.([a-z]{2,6}:(\.[a-z]{2})$/i;
var测试结果;
if(过滤测试(str))
testresults=true;
否则{
$(“.email”).text(“\u2718”).css(“颜色”、“红色”);
测试结果=假;
}
返回(测试结果);
}
函数checkbae(){
if(document.layers | | document.getElementById | | document.all)
返回窗口。checkemail();
其他的
返回true;
}

您需要学习如何使用javascript调试器,例如Firebug

首先,您缺少很多分号和括号。我知道其中一些是可选的,但不使用它们几乎肯定会在以后添加另一行代码时带来麻烦。然而,这将是一个问题:

var str = document.validation.email.value   // <-- Semi-colon??
var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
演示:

注意,我刚刚注意到,当电子邮件正确时,您永远不会清除
X
,因此您基本上总是拥有
X
。您需要确保在过滤器的
if
块中将其删除。使用一点CSS,您也可以简化代码,只需隐藏和显示
X
,而不是每次重新创建html


演示:

为此代码创建了JSFIDLE:请格式化您的代码,停止使用粗体,并清楚地说明您的问题。我看不出您在js文件中声明了测试结果。OP没有使用jQuery,因此这肯定不起作用。@JeffB我的错,您说得对。我看到了你的例子。
function checkemail() {
    var messageg = document.getElementById('email');
    var str = document.validation.email.value;
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]        {2})?)$/i;
    if (filter.test(str)) {
        testresults = true;
    } else {
        messageg.style.color = "red";
        messageg.innerHTML = "\u2718";
        testresults = false;
    }
    return testresults;
}

function checkbae() {
    if (document.layers || document.getElementById || document.all) {
        return checkemail();
    } else {
        return true;
    }
}