JavaScript實現(xiàn)表單驗證示例
HTML表單(form)通常用于收集用戶信息,例如姓名,電子郵件地址,位置,年齡等。
但是很可能某些用戶可能不會輸入您期望的數(shù)據(jù)。HTML表單驗證可以通過JavaScript完成。
為了避免對服務(wù)器資源造成不必要的壓力,您可以使用JavaScript在客戶端(用戶系統(tǒng))上驗證表單數(shù)據(jù),不正確的信息是不會提交給后臺服務(wù)器的——這是所謂客戶端驗證。本文將介紹這種驗證
【表單驗證一般分為兩種方式。
客戶端驗證:直接在客戶端執(zhí)行JS進行驗證,驗證的過程中和服務(wù)器端沒有任何的交互
服務(wù)器端驗證:頁面將驗證信息傳回服務(wù)器端,服務(wù)器端進行驗證,并將驗證的結(jié)果發(fā)送回客戶端
這兩個驗證都是必須的,因為客戶端的驗證安全性不是太高,但是可以防止80%以上的用戶的誤操作,可以減輕服務(wù)器端的壓力,而且速度非??欤脩趔w驗高。不要以為有了客戶端的驗證就不需要了服務(wù)器端的了,客戶端的驗證是很容易繞過去的,服務(wù)器端驗證安全性比較高,所以一般驗證兩個驗證都需要寫?!?/p>
例1、一個簡單示例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>表單驗證簡單示例</title> </head> <head> <script> function validateForm(){ var x=document.forms["myForm"]["fname"].value; if (x==null || x==""){ ? //alert("姓名必須填寫"); ? usernameerror.innerHTML="<font color='red'>姓名必須填寫</font>"; ? return false; ? } else{ ? usernameerror.innerHTML="正確"; ? return true; ? } ? ? } </script> </head> <body> <!--?? ? <form name="myForm" action="demo-form.php" onsubmit="return validateForm()" method="post"> --> <form name="myForm" onsubmit="return validateForm()" > 姓名: <input type="text" name="fname" id="username"> <span id="usernameerror"></span> <br> <input type="submit" value="提交"> <input type="reset" value="重置"> </form> ?? ? </body> </html>
保存文件名為:表單驗證的例1.html
用瀏覽器運行測試之,效果如下:
例2、一個復(fù)雜點的示例
<!DOCTYPE html> <html> <head> ? <meta charset="UTF-8"> ? <title>表單驗證示例注冊用戶</title> ?? ? <style type="text/css"> ? </style> ? ? <script> ? ? function checkusername() ? ? { ? ? ? var myform = document.getElementById("form1"); ? ? ? var username = myform.username.value.length; ? ? ? if(username < 1||username>12) ? ? ? { ? ? ? ? errusername.innerHTML = "<font color='red'>用戶名不符合要求</font>"; ? ? ? ? return false; ? ? ? }else{ ? ? ? ? errusername.innerHTML = "<font color='green'>用戶名符合要求</font>"; ? ? ? ? return true; ? ? ? } ? ? } ? ? function checkage() ? ? { ? ? ? var myform = document.getElementById("form1"); ? ? ? var age = myform.age.value; ? ? ? if(age != parseInt(age)) ? ? ? { ? ? ? ? errage.innerHTML = "<font color='red'>年齡不符合要求</font>"; ? ? ? ? return false; ? ? ? }else{ ? ? ? ? errage.innerHTML = "<font color='green'>年齡符合要求</font>"; ? ? ? ? return true; ? ? ? } ? ? } ? ? function checkemail() ? ? { ? ? ? var myform = document.getElementById("form1"); ? ? ? var mail=/^[A-Za-z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/; ? ? ? if(!mail.test(myform.email.value)) ? ? ? { ? ? ? ? ? erremail.innerHTML = "<font color='red'>email不符合要求</font>"; ? ? ? ? return false; ? ? ? }else{ ? ? ? ? erremail.innerHTML = "<font color='green'>email符合要求</font>"; ? ? ? ? return true; ? ? ? } ? ? } ? ? function checkform() ? ? { ? ? ? checkusername();checkage();checkemail(); ? ? ? if(checkusername()&&checkage()&&checkemail()) ? ? ? { ? ? ? ? return true; ? ? ? ? }else{ ? ? ? ? return false; ? ? ? } ? ? } ? </script> </head> ? <body> <!-- ?<form id="form1" name="form1" method="post" action="ttt.jsp" onsubmit="return checkform()"> --> ? ?<form id="form1" name="form1" method="post" onsubmit="return checkform()"> <table width="777" border="0" cellpadding="1" cellspacing="1"> ?<tr> ? <td colspan="3" ><div align="center">請輸入你的注冊信息</div></td> ?</tr> ?<tr> ? <td width="250" ><div align="right" >請輸入你的用戶名:</div></td> ? <td width="250"><div align="center"> ? ? ?<input type="text" name="username" onblur="checkusername()" /> ? ? ?</div></td> ? <td><div id="errusername" align="center"></div></td> ?</tr> ?<tr> ? <td width="250"><div align="right">請輸入你的年齡:</div></td> ? <td width="250"><div align="center" > ? ?<label> ? ?<input type="text" name="age" onblur="checkage()"/> ? ?</label> ? </div></td> ? ?<td><div align="center" id="errage"></div></td> ?</tr> ?<tr> ? <td width="250"><div align="right" >請輸入你的EMAIL:</div></td> ? <td width="250"><div align="center" > ? ?<label> ? ?<input type="text" name="email" onblur="checkemail()" /> ? ?</label> ? </div></td> ? ?<td><div align="center" id="erremail"></div></td> ?</tr> ?<tr> ? <td><div align="right"> ? ?<label> ? ?<input type="submit" name="Submit" value="提交" /> ? ?</label> ? </div></td> ? ?<td><div align="center"> ? ? <label> ? ? <input type="reset" name="Submit2" value="重置" /> ? ? </label> ? ?</div></td> ? <td><div align="center"></div></td> ?</tr> </table> ? </form> ? </body> </html>
保存文件名為:表單驗證的例1.html
用瀏覽器運行測試之,效果如下:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
分享js粘帖屏幕截圖到web頁面插件screenshot-paste
這篇文章主要為大家分享了js粘帖屏幕截圖到web頁面插件screenshot-paste的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-03-03JavaScript canvas實現(xiàn)九宮格切圖效果
這篇文章主要為大家詳細介紹了JavaScript canvas實現(xiàn)九宮格切圖效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09