0

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>

这段代码的问题是当我点击发送按钮时,页面没有改变。正如您在代码中看到的,它应该有一个警报出来,但它没有。我认为问题出在底部,但我不确定.......

4

2 回答 2

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;
于 2013-11-05T01:39:27.300 回答
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;
    }
}

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

于 2013-11-05T01:51:47.860 回答