表單驗證幾乎在每一個需要註冊或登陸的網站是必不可少的,有些驗證則非常的複雜,可以說是各種各樣給你的要求,不過本章節只介紹一下表單中最簡單的驗證方式,就是判斷是否為空,有些要求比較低的網站對此已經滿足需求了。
程式碼如下:
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.jb51.net/" /> <title>js简单表单验证</title> <script type="text/javascript"> window.onload=function() { var bt=document.getElementById("bt"); bt.onclick=function() { if(document.myform.name.value=="") { alert("用户名不能为空!"); document.myform.name.focus(); return false; } else if(document.myform.pw.value=="") { alert("密码不能为空!"); document.myform.pw.focus(); return false; } } } </script> </head> <body> <form action="index.php" method="get" name="myform"> <ul> <li>姓名:<input type="text" name="name" id="name" /></li> <li>密码:<input type="text" name="pw" id="age" /></li> <li><input type="submit" id="bt"/></li> </ul> </form> </body> </html>
以上程式碼,當點擊提交按鈕的時候,能夠進行簡單的表單驗證,如果表單項為空,那麼就會彈出提示,並且將焦點放入當前表單項,程式碼比較簡單,這裡距不多介紹了,可以參考相關閱讀。
下面在來看下js驗證表單實例程式碼:
gspan.html
<html> <head> <title>表单验证实例</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-" /> <script src="check.js" type="text/javascript"></script> <style> span{ font-size:px; } .stats{ color : #ccc; } .stats{ color :black; } .stats{ color :red; } .stats{ color :green; } </style> </head> <body> <form method="post" action="reg.php" onsubmit="return regs('click')" > 用户名:<input type="text" name="username" /><span class="stats">用户名不能为空</span><br/> 邮箱:<input type="text" name="email" /><span class="stats">邮箱不能为空</span><br/> 密码:<input type="password" name="password" /><span class="stats">密码不能为空</span><br/> 确认密码:<input type="password" name="chkpass" /><span class="stats">密码不能为空</span><br/> <input type="submit" /> </form> </body> </html>
check.js
function gspan(cobj){ //获取表单后的span 标签 显示提示信息 if (cobj.nextSibling.nodeName != 'SPAN'){ gspan(cobj.nextSibling); } else { return cobj.nextSibling; } } //检查表单 obj【表单对象】, info【提示信息】 fun【处理函数】 click 【是否需要单击, 提交时候需要触发】 function check(obj, info, fun, click){ var sp = gspan(obj); obj.onfocus = function(){ sp.innerHTML = info; sp.className = 'stats'; } obj.onblur = function(){ if (fun(this.value)){ sp.innerHTML = "输入正确!"; sp.className = "stats"; } else { sp.innerHTML = info; sp.className = "stats"; } } if (click == 'click'){ obj.onblur(); } } onload = regs; //页面载入完执行 function regs(click){ var stat = true; //返回状态, 提交数据时用到 username = document.getElementsByName('username')[]; password = document.getElementsByName('password')[]; chkpass = document.getElementsByName('chkpass')[]; email = document.getElementsByName('email')[]; check(username, "用户名的长度在-之间", function(val){ if (val.match(/^\S+$/) && val.length >= && val.length <=){ return true; } else { stat = false; return false; } }, click); check(password, "密码必须在-位之间", function(val){ if (val.match(/^\S+$/) && val.length >= && val.length <=){ return true; } else { stat = false; return false; } }, click); check(chkpass, "确定密码要和上面一致,规则也要相同", function(val){ if (val.match(/^\S+$/) && val.length >= && val.length <= && val == password.value){ return true; } else { stat = false; return false; } }, click); check(email, "请按邮箱规则输入", function(val){ if (val.match(/\w+@\w+\.\w/)){ return true; } else { stat = false; return false; } }, click); return stat; }