之前學(xué)習(xí)HTML的時(shí)候會(huì)涉及到一些JavaScript的基礎(chǔ)知識(shí),其中就有表單驗(yàn)證問題,當(dāng)時(shí)很郁悶的是,不管表單驗(yàn)證是否通過,它都會(huì)跳轉(zhuǎn)到指定頁(yè)面。現(xiàn)在在學(xué)js的時(shí)候,發(fā)現(xiàn)這個(gè)問題,恍然大悟。以驗(yàn)證郵件地址是否合法為例,用代碼說話。
JavaScript代碼
function validate(){
var x = document.forms["myForm1"]["email"].value; //找到表單中email輸入框的內(nèi)容
var atpos = x.indexOf("@"); //從前往后數(shù)@符號(hào)所在的位置
var dotpos = x.lastIndexOf("."); //從后往前數(shù).符號(hào)所在的位置
if(atpos<1||dotpos<atpos+2||dotpos+2>=x.length){
alert("不是一個(gè)有效的e-mail地址");
return false;
}
特別要注意的是,在if語(yǔ)句中含有 return false; 這句,如果少了這一句,則不管驗(yàn)證成功與否它都會(huì)自行跳轉(zhuǎn)。
HTML代碼
<form action="#" onsubmit="return validate();" method="post" name="myForm1">
Email:<input type="text" name="email" />
<input type="submit" value="提交"/>
</form>
注意: onsubmit中 return 這個(gè)詞很關(guān)鍵,必不可少,否則結(jié)果也會(huì)跟上述的一樣,并不是我們想要的。
就這樣,我疑惑已久的問題得到解決啦!