javascript验证电子邮件地址无响应

时间:2013-11-05 01:36:04

标签: javascript

juse有一个简单的问题,我已经尝试对电子邮件地址进行验证。我需要进行验证,例如验证电子邮件地址是否是学校电子邮件(这意味着以edu结尾),但我决定从验证正常的电子邮件开始,下面的代码就是我的内容。

Javascript部分

function ok_Email(email){
    var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    if(filter.test(email)){
        return true;
        window.alert('This is an email')
    }
else{
    return false;
    window.alert('This is not an email')
}
}

Html部分

<form name="myform"
onSubmit="return ok_Email(this);">
<p>
Please enter your email address: <br>
<input type="text" size=40 name="user_email">
<p>
<input type = submit value="Send">
</form>

此代码的问题是当我点击发送按钮时,页面没有改变。正如您在代码中看到的那样,它应该会发出警报,但事实并非如此。我认为问题来自于buttom部分,但我不确定.......

2 个答案:

答案 0 :(得分:3)

警报未显示,因为返回在警报之前!代码在此时退出,并且在执行后没有任何内容。

第二个问题是您正在针对对象测试正则表达式。

"return ok_Email(this);">
                 ^^^^
                  this is the form

 function ok_Email(email){
                   ^^^^^
                   You think it is a string

您需要引用user_email的值。

function ok_Email(form){
    var email = form.user_email.value;

答案 1 :(得分:0)

您需要将代码更改为:

function ok_Email(form.user_email.value){
    var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    if(filter.test(foam.user_email.value)){
        window.alert('This is an email');
        return true;
    }
    else{
      window.alert('This is not an email');
      return false;
    }
}

查看警告框并传递电子邮件字段的值