之前学习HTML的时候会涉及到一些JavaScript的基础知识,其中就有表单验证问题,当时很郁闷的是,不管表单验证是否通过,它都会跳转到指定页面。现在在学js的时候,发现这个问题,恍然大悟。以验证邮件地址是否合法为例,用代码说话。
JavaScript代码
function validate(){
var x = document.forms["myForm1"]["email"].value; //找到表单中email输入框的内容
var atpos = x.indexOf("@"); //从前往后数@符号所在的位置
var dotpos = x.lastIndexOf("."); //从后往前数.符号所在的位置
if(atpos<1||dotpos<atpos+2||dotpos+2>=x.length){
alert("不是一个有效的e-mail地址");
return false;
}
}
特别要注意的是,在if语句中含有 return false; 这句,如果少了这一句,则不管验证成功与否它都会自行跳转。
HTML代码
<form action="#" οnsubmit="return validate();" method="post" name="myForm1">
Email:<input type="text" name="email" />
<input type="submit" value="提交"/>
</form>
注意: onsubmit中 return 这个词很关键,必不可少,否则结果也会跟上述的一样,并不是我们想要的。
就这样,我疑惑已久的问题得到解决啦!
|