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部分,但我不确定.......
答案 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;
}
}
查看警告框并传递电子邮件字段的值