//获取下一个span,可以通过这个对象给状态
function gspan(cobj){
while(true){
if(cobj.nextSibling.nodeName!="SPAN")//因为有可能input标签后可能有空格再接span,或者中间有其它标签,但是我们要改的是span的内容,所以要获得input对应的span;
cobj=cobj.nextSibling;
else
return cobj.nextSibling;
}
} /*
通用检查方法
第一个参数:obj, 是用来检查的对象
第二个参数:info, 是用来检查的提示信息
第三个参数: fun, 是一个回调函数,用来检查值是否按条件输入。因为一个变量不能解决判断是否value值符合要求,所以用函数作为参数。
第四个参数: click只是一个状态, 分清楚是单击提交按,还是失去焦点。因为check里面的离开焦点,在单击提交时每一个都没有离开焦点,所以不会调用check里面的离开焦点函数;
*/
function check(obj, info, fun, click){
var sp=gspan(obj);
obj.onfocus=function(){ //一旦获得焦点,就要变提示信息以及颜色;
sp.innerHTML=info;
sp.className="stats2";//stats表示几个状态不同的字体颜色; } obj.onblur=function(){//一旦失去焦点,就要检查这个value值,通过fun回调函数。
if(fun(this.value)){//如果符合规则,则回调函数返回真,提示信息变为“输入正确”并改变颜色;
sp.innerHTML="输入正确";
sp.className="stats4"; }else{
sp.innerHTML=info;
sp.className="stats3";
}
} if(click=="click")//如果是单击提交按钮的,就手动条用onblur方法
obj.onblur();
} //页面加载完自动调用
onload=regs //一个函数,可以使用onsubmit调用, 也可以使用onload调用
function regs(click){ var stat=true;//因为表单是否提交要通过判断其是否通过验证,返回stat给提交事件。
var username=document.getElementsByName("username")[0];
var password=document.getElementsByName("password")[0];
var repass=document.getElementsByName("repass")[0];
var email=document.getElementsByName("email")[0];
var other=document.getElementsByName("other")[0]; check(username, "用户名的长度要在3-20之间", function(val){ if(val.match(/^\S+$/) && val.length >=3 && val.length <=20){
return true;
}else{
stat=false;
return false;
}
}, click); check(password, "密码必须在6-20位之间", function(val){
if(val.match(/^\S+$/) && val.length >=6 && val.length <=20){
return true;
}else{
stat=false;
return false;
}
}, click); check(repass, "确定密码要和上面一致,规则也要相同", function(val){
if(val.match(/^\S+$/) && val.length >=6 && val.length <=20 && 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;
}

表单验证-JS实现的更多相关文章

  1. 表单验证—js循环所有表单验证

    [封装为表单验证的专用js,所有表单页面都可以调用] 1.表单 <form id="regForm" method="post" action=" ...

  2. 最常用的15个前端表单验证JS正则表达式

    在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了15个常用的JavaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份 ...

  3. 简单的表单验证(js、jquery)

    //javascript代码 function valForm(){ var username=document.getElementById("username"); var p ...

  4. 一个自己实现的js表单验证框架。

    经常要做一些表单验证的操作,每次都是用现成的框架,比如jquery,bootstrap等的验证插件,虽然也很强大,也很好用,可就是用起来需要引入许多js库,还有里面功能太多,感觉不太符合自己的需求.最 ...

  5. jquery validate表单验证插件-推荐

    1 表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家.     1.点击表单项,显示帮助提示 2.鼠标离开表单项时,开始校验元素  3.鼠标离开后的正确.错误提示及鼠标移入时的帮 ...

  6. jquery validate表单验证插件

    1 表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家.     1.点击表单项,显示帮助提示 2.鼠标离开表单项时,开始校验元素  3.鼠标离开后的正确.错误提示及鼠标移入时的帮 ...

  7. jquery validate表单验证插件的基本使用方法及功能拓展

    1 表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家.    1.点击表单项,显示帮助提示 2.鼠标离开表单项时,开始校验元素 3.鼠标离开后的正确.错误提示及鼠标移入时的帮助提 ...

  8. jqury表单验证

    结合天天生鲜的用户注册页面,学习验证表单js register.js--表单验证源码 $(function(){ var error_name = false; var error_password ...

  9. 表单验证插件之jquery.validate.js

    提到表单验证的插件,第一个想到的就是jquery.validate.js,所以小生想在这里稍微详细地说一下这款插件的具体使用方法,便于理解,我直接附上整段demo的代码(没怎么调样式,主要是看js): ...

随机推荐

  1. mysql_用户_操作

    一. 创建用户 登录MySQL mysql -u root -p 添加新用户 create user 'username'@'host' identified by 'password'; usern ...

  2. log日志框架和LocationAwareLogger问题

    遇到了同样的问题, 我的解决办法是在pom.xml中增加如下配置,去除对于jcl-over-slf4j.jar的依赖. <exclusions>                <ex ...

  3. standard pbr(二)

    下一步看像素着色器代码 half4 fragBase (VertexOutputForwardBase i) : SV_Target { return fragForwardBaseInternal( ...

  4. 人工智能-baidu-aip语音识别(语音转文字)

    做这个之前,需要在电脑上安装FFmpeg工具,将要转的语音格式转为PCM格式.FFmpeg不需要安装,下载后,打开bin文件夹,然后将路径放在系统环境变量里.记住,要关闭所有打开的Pycharm,然后 ...

  5. trait特性

    1.trait特性可以和特化或者偏特化结合. 2.trait可以和类型转换结合.

  6. 入坑第二式 golang入坑系列

    史前必读: 这是入坑系列的第二式,如果错过了第一式,可以去gitbook( https://andy-zhangtao.gitbooks.io/golang/content/ )点个回放,看个重播.因 ...

  7. 011_用eclipse打开hadoop1.2.1源码出现The method getSplits(JobConf, int) is undefined for the type Object错误

    出现的错误截图: 此时Eclipse使用的jdk1.8,将编译环境改成jdk1.7就行了,解决. 没问题了. 下面观点是参考如下网址,未经验证.参考:http://blog.csdn.net/onei ...

  8. qq 微信 微博 第三方分享

    <html> <head> <meta charset="utf-8"> <meta name="viewport" ...

  9. Linux安装Mycat

    1.官网下载mycat到/home/install目录下 2.解压到/usr/local/mycat目录下 tar -zxvf Mycat-server-1.6-RELEASE-20161028204 ...

  10. Linux进程中TIME_OUT解析

    TIMEWAIT状态本身和应用层的客户端或者服务器是没有关系的.仅仅是主动关闭的一方,在使用FIN|ACK|FIN|ACK四分组正常关闭TCP连接的时候会出现这个TIMEWAIT.服务器在处理客户端请 ...