Jquery.validate.js实现前端表单验证

JavaScript09

Jquery.validate.js实现前端表单验证,第1张

jquery.validate.js表单验证

官方网站: http://bassistance.de/jquery-plugins/jquery-plugin-validation/

API: http://jquery.bassistance.de/api-browser/plugins.html

当前版本:1.5.5

需要JQuery版本:1.2.6+, 兼容 1.3.2

<script src="../js/jquery.js" type="text/javascript"></script>

<script src="../js/jquery.validate.js" type="text/javascript"></script>

(1)required:true 必输字段

(2)remote:"check.php" 使用ajax方法调用check.php验证输入值

(3)email:true 必须输入正确格式的电子邮件

(4)url:true必须输入正确格式的网址

(5)date:true 必须输入正确格式的日期

(6)dateISO:true必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性

(7)number:true 必须输入合法的数字(负数,小数)

(8)digits:true 必须输入整数

(9)creditcard: 必须输入合法的信用卡号

(10)equalTo:"#field" 输入值必须和#field相同

(11)accept:输入拥有合法后缀名的字符串(上传文件的后缀)

(12)maxlength:5输入长度最多是5的字符串(汉字算一个字符)

(13)minlength:10 输入长度最小是10的字符串(汉字算一个字符)

(14)rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)

(15)range:[5,10] 输入值必须介于 5 和 10 之间

(16)max:5 输入值不能大于5

(17)min:10 输入值不能小于10

例子:自定义密码验证的规则

1、javascript校验

<input id="username" onkeyup="check()"/><span id="inf_n"></span>

<script>

function check(){

var name=document.getElementById("username").value

var sp_inf_n=document.getElementById("inf_n")

if(name){

sp_inf_n.style="color:green"

sp_inf_n.innerHTML="*√" 

}else{

    sp_inf_n.style="color:red"

sp_inf_n.innerHTML="*请输入内容!"

}

}

</script>

2、运行效果

<!--仅是简单的示例,内容正则校验和其他功能需要再进一步完善-->

嘿嘿..上来提问的,刚好看到你的问题,就顺便帮你整理一段代码出来了,代码是我做项目中经常用到的,在这里给你做了一些简化..应该能够应付你大部分的工作了^^不够的话可以自己扩展...

代码部分:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>My Check Form</title>

</head>

<script type="text/javascript">

//主函数

function CheckForm(oForm) {

var err_ele = null

var ele = oForm.elements

var haserror = false

//遍历所有表元素

for(var i=0i<ele.lengthi++) {

//过滤元素类型

if(ele.type != 'submit' &&ele.type != 'hidden' &&ele.type != 'button') {

//是否需要验证标签

var required = ele[i].getAttribute('required')

if(required!="undefined" &&(required==""||required=="true"||required=="yes") ) {

if(!validate(ele[i])) {

if(err_ele==null)

err_ele = ele[i]

haserror = true

break

}

}

}

}

//判断是否有没有通过验证的项目

if(haserror) {

err_ele.focus()

return false

} else {

return true

}

}

//得到表单元素的值

function getvalue(ele) {

var type = ele.getAttribute('type')

switch(type) {

case 'text':

case 'hidden':

case 'password':

case 'file':

case "select-one":

case 'textarea':

return ele.value

}

}

//检测函数

function validate(ele) {

//得到设定的检测函数

var fun = ele.getAttribute('fun')

//自定义提示语句

var custommsg = ele.getAttribute('msg')

if(fun!=null) {

var checkarr = executeFunc(fun,ele)

if(checkarr[2] == 'regxp') { //正则表达式处理

if(!regValidate(getvalue(ele),checkarr[0])) {

//如果有自定义提示语句则使用自定义提示语句

if(custommsg) {

alert(custommsg)

} else {

alert(checkarr[1])

}

return false

} else {

//RemoveSpan(ele)

}

} else if(checkarr[2] == 'custom') { //函数自行逻辑处理

//如果验证通过

if(!checkarr[0]) {

//如果有自定义提示语句则使用自定义提示语句

if(custommsg) {

alert(custommsg)

} else {

alert(checkarr[1])

}

return false

}

}

}

return true

}

//运行函数

function executeFunc(name,element) {

//匹配函数是否带有参数

if(name.match(/^[\w]+\([\w,\'\"]+\)?$/)) {

return eval(name.replace(/^([\w]+)\(([\w,\'\"]+)\)?$/,'$1($2,element)'))

} else {

return eval(name.match(/^[\w]+\(\)$/) ? name : name + '()')

}

}

//

//判定某个值与表达式是否相符

function regValidate(value,sReg) {

//字符串->正则表达式,不区分大小写

var reg = new RegExp(sReg ,"i")

if(reg.test(value)) {

return true

} else {

return false

}

}

function UserName() {

var rt = new Array()

rt[0] = '^([a-zA-Z0-9]|[._]){4,19}$'

rt[1] = "用户名必须为4-19个字母和数字组成"

rt[2] = 'regxp'

return rt

}

function PassWord() {

var rt = new Array()

rt[0] = '^([a-zA-Z0-9]|[._]){6,19}$'

rt[1] = "密码必须为6-19个字母和数字组成"

rt[2] = 'regxp'

return rt

}

function notBlank(){

var rt = new Array()

rt[0] = "^\\S+$"

rt[1] = "该项不能为空,且不能含有空格!"

rt[2] = 'regxp'

return rt

}

function required(){

var rt = new Array()

rt[0] = "^\\S"

rt[1] = "该项不能为空!"

rt[2] = 'regxp'

return rt

}

//判断email

function isEmail() {

var rt = new Array()

rt[0] = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"

rt[1] = "该项填写的EMAIL格式不正确!"

rt[2] = 'regxp'

return rt

}

//只能输入中文

function onlyZh() {

var rt = new Array()

rt[0] = "^[\u0391-\uFFE5]+$"

rt[1] = "该项只能输入中文!"

rt[2] = 'regxp'

return rt

}

//只可输入英文

function onlyEn() {

var rt = new Array()

rt[0] = "^[A-Za-z]+$"

rt[1] = "该项只能输入英文!"

rt[2] = 'regxp'

return rt

}

function enOrNum() {

var rt = new Array()

rt[0] = "^[A-Za-z0-9]+$"

rt[1] = "该项只能输入英文和数字,且不能有空格!"

rt[2] = 'regxp'

return rt

}

function isPhone() {

var rt = new Array()

rt[0] = "^((\\(\\d{2,3}\\))|(\\d{3}\\-))?(\\(0\\d{2,3}\\)|0\\d{2,3}-)?[1-9]\\d{6,7}(\\-\\d{1,4})?$"

rt[1] = "应输入正确的电话号码格式!"

rt[2] = 'regxp'

return rt

}

// 自定义验证函数

function rePassword(ID,ele) {

var rt = new Array()

rt[0] = false

rt[1] = "再次密码输入不一致!"

rt[2] = 'custom'

var password = document.getElementById(ID).value

if(password != '' || ele.value != ''){

if(password == ele.value)

rt[0] = true

}

return rt

}

</script>

<body>

<form id="form1" name="form1" method="post" action="" onsubmit="return CheckForm(this)">

<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<td width="20%" align="right">用户名:</td>

<td><input type="text" name="username" id="username" required="true" fun="UserName" msg="自定义提示信息:用户名不正确,请重新输入!" /></td>

</tr>

<tr>

<td align="right">密码:</td>

<td><input type="password" name="password" id="password" required="true" fun="PassWord" /></td>

</tr>

<tr>

<td align="right">确认密码:</td>

<td><input type="password" name="repassword" id="repassword" required="true" fun="rePassword('password')" /></td>

</tr>

<tr>

<td align="right">电子邮件:</td>

<td><input type="text" name="email" id="email" required="true" fun="isEmail" /></td>

</tr>

<tr>

<td align="right">身份证号:</td>

<td><input type="text" name="idcard" id="idcard" required="true" fun="isIdCard" /></td>

</tr>

<tr>

<td align="right">全中文项:</td>

<td><input type="text" name="chinese" id="chinese" required="true" fun="onlyZh" /></td>

</tr>

<tr>

<td align="right">其它:</td>

<td><input type="text" name="notblank" id="notblank" required="true" fun="notblank" /></td>

</tr>

<tr>

<td align="right"> </td>

<td><input type="submit" name="button" id="button" value="提交" /></td>

</tr>

</table>

</form>

</body>

</html>