分享java带来的快乐

我喜欢java新东西

Javascript_表单验证大全(收集)

5、身份证验证:包括15位和18位。
   function idNumber(s)//身份证验证
           {
             regu1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//15wei
             regu2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;//18wei
             re1=new RegExp(regu1);
             re2=new RegExp(regu2);
            
             if(!(re1.test(s)||re2.test(s)))
             {
                   document.getElementById ("idCardInf").innerHTML="格式不对!";
                   document.getElementById ("idCardInf").style.color="red";
               
             }
             else
             {
                  document.getElementById ("idCardInf").innerHTML="通过!";
                  document.getElementById ("idCardInf").style.color="green";
                  document.getElementById ("idCardCheck").innerHTML="";
             }
            
//             alert("请正确填写18位或15位身份证号码");
           }
6、手机号码验证:13和15开头的号码。
   function isMobileNO(s)//手机验证
           {
             var a = /^((\(\d{3}\))|(\d{3}\-))?13\d{9}|15\d{9}$/ ;
           if( !s.match(a) )
           {
               document.getElementById ("mobileNOInf").innerHTML="格式不对!";
               document.getElementById ("mobileNOInf").style.color="red";
//                   alert("手机号码格式不对");
           }
           else
           {
                  document.getElementById ("mobileNOInf").innerHTML="通过!";
                  document.getElementById ("mobileNOInf").style.color="green";
                  document.getElementById ("mobileNOCheck").innerHTML="";
           }
          
           }
7、各表单域提示信息,获得焦点验证。
      function displayInform(s)//注册信息规则提示信息(获得焦点验证)
           {
             if(s=="user")
             document.getElementById ("userIDCheck").innerHTML="(用户名由4-16个数字或字母组成)";
             if(s=="password")
             document.getElementById ("passwordCheck").innerHTML="(密码由6-16个数字、字母、下划线组成,首字母必须是字母,不区分大小写)";
             if(s=="passwordC")
             document.getElementById ("confirmCheck").innerHTML="(两次密码输入必须一致)";
             if(s=="idCard")
             document.getElementById ("idCardCheck").innerHTML="(请输入正确的号码,以便你更容易找回密码)";
             if(s=="mobileNO")
             document.getElementById ("mobileNOCheck").innerHTML="(请输入正确的号码,以便你更快找回密码)";
             if(s=="email")
             document.getElementById ("emailCheck").innerHTML="(请输入正确的邮箱地址,以便你更容易找回密码)";
            
           }
8、表单提交验证:先对必填项进行非空验证,再进行匹配验证。
    function submitValidator() //提交验证
          {
            if(document.getElementById("control").style.display=="inline")
            {
                if((document.getElementById ("user").value=="")||(document.getElementById("password").value=="")||(document.getElementById("passwordC").value=="")||(document.getElementById("answer").value=="")||(document.getElementById("question").value==""))
               {
                  alert("必填项不能为空!");
                   return false;
                }
                else
               {
                  if((document.getElementById ("user").value).match(/^[0-9a-zA-Z]{4,16}$/)&&(document.getElementById("password").value).match(/^[a-zA-Z][0-9a-zA-Z_]{5,15}$/)&&
                  (document.getElementById ("password").value.toLowerCase()==document.getElementById ("passwordC").value.toLowerCase()))
                  {return true;}
                  else
                  {alert("输入格式不对");return false;}
                }
            }
            else
            {
               if((document.getElementById ("user").value=="")||(document.getElementById("password").value=="")||(document.getElementById("passwordC").value=="")||(document.getElementById("answer").value==""))
               {
                  alert("必填项不能为空!");
                   return false;
                }
                else
               {
                  if((document.getElementById ("user").value).match(/^[0-9a-zA-Z]{4,16}$/)&&(document.getElementById("password").value).match(/^[a-zA-Z][0-9a-zA-Z_]{5,15}$/)&&
                  (document.getElementById ("password").value.toLowerCase()==document.getElementById ("passwordC").value.toLowerCase()))
                  {return true;}
                  else
                  {alert("输入格式不对");return false;}
                }
            }
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/diershi/archive/2009/04/16/4084981.aspx
JS表单验证
<script language="JavaScript">
/*
*--------------- 客户端表单通用验证CheckForm(oForm) -----------------
* 功能:通用验证所有的表单元素.
* 使用:
*    <form name="form1" onsubmit="return CheckForm(this)">
*    <input type="text" name="id" check="^\S+$" warning="id不能为空,且不能含有空格"/>
*    <input type="submit"/>
*    </form>
* author:wanghr100(灰豆宝宝.net)
* email:wanghr100@126.com
* update:19:28 2004-8-23
* 注意:写正则表达式时一定要小心.不要让"有心人"有空子钻.
* 已实现功能:
* 对text,password,hidden,file,textarea,select,radio,checkbox进行合法性验证
* 待实现功能:把正则表式写成个库.
*--------------- 客户端表单通用验证CheckForm(oForm) -----------------
*/
////////////////////////////////////////////////////////////////////////////////
//主函数
function CheckForm(oForm)
{
    var els = oForm.elements;
    //遍历所有表元素
    for(var i=0;i<els .length;i++)
    {
        //是否需要验证
        if(els.check)
        {
            //取得验证的正则字符串
            var sReg = els.check;
            //取得表单的值,用通用取值函数
            var sVal = GetValue(els);
            //字符串->正则表达式,不区分大小写
            var reg = new RegExp(sReg,"i");
            if(!reg.test(sVal))
            {
                //验证不通过,弹出提示warning
                alert(els.warning);
                //该表单元素取得焦点,用通用返回函数
                GoBack(els)  
                return false;
            }
        }
    }
}
//通用取值函数分三类进行取值
//文本输入框,直接取值el.value
//单多选,遍历所有选项取得被选中的个数返回结果"00"表示选中两个
//单多下拉菜单,遍历所有选项取得被选中的个数返回结果"0"表示选中一个
function GetValue(el)
{
    //取得表单元素的类型
    var sType = el.type;
    switch(sType)
    {
        case "text":
        case "hidden":
        case "password":
        case "file":
        case "textarea": return el.value;
        case "checkbox":
        case "radio": return GetValueChoose(el);
        case "select-one":
        case "select-multiple": return GetValueSel(el);
    }
    //取得radio,checkbox的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
    function GetValueChoose(el)
    {
        var sValue = "";
        //取得第一个元素的name,搜索这个元素组
        var tmpels = document.getElementsByName(el.name);
        for(var i=0;i<tmpels .length;i++)
        {
            if(tmpels.checked)
            {
                sValue += "0";
            }
        }
        return sValue;
    }
    //取得select的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
    function GetValueSel(el)
    {
        var sValue = "";
        for(var i=0;i<el.options.length;i++)
        {
            //单选下拉框提示选项设置为value=""
            if(el.options.selected && el.options.value!="")
            {
                sValue += "0";
            }
        }
        return sValue;
    }
}
//通用返回函数,验证没通过返回的效果.分三类进行取值
//文本输入框,光标定位在文本输入框的末尾
//单多选,第一选项取得焦点
//单多下拉菜单,取得焦点
function GoBack(el)
{
    //取得表单元素的类型
    var sType = el.type;
    switch(sType)
    {
        case "text":
        case "hidden":
        case "password":
        case "file":
        case "textarea": el.focus();var rng = el.createTextRange(); rng.collapse(false); rng.select();
        case "checkbox":
        case "radio": var els = document.getElementsByName(el.name);els[0].focus();
        case "select-one":
        case "select-multiple":el.focus();
    }
}
</script>
通用表单函数测试:
<form name="form1" onsubmit="return CheckForm(this)">
test:<input type="text" name="test"/>不验证<br />
账号:<input type="text" check="^\S+$" warning="账号不能为空,且不能含有空格" name="id"/>不能为空<br />
密码:<input type="password" check="\S{6,}" warning="密码六位以上" name="id"/>六位以上<br />
电话:<input type="text" check="^\d+$" warning="电话号码含有非法字符" name="number" value=""/><br />
相片上传:<input type="file" check="(.*)(\.jpg|\.bmp)$" warning="相片应该为JPG,BMP格式的" name="pic" value="1"/><br />
出生日期:<input type="text" check="^\d{4}\-\d{1,2}-\d{1,2}$" warning="日期格式2004-08-10" name="dt" value=""/>日期格式2004-08-10<br />
省份:
<select name="sel" check="^0$" warning="请选择所在省份">
<option value="">请选择
</option><option value="1">福建省
</option><option value="2">湖北省
</option></select>
<br />
选择你喜欢的运动:<br />
游泳<input type="checkbox" name="c" check="^0{2,}$" warning="请选择2项或以上"/>
篮球<input type="checkbox" name="c"/>
足球<input type="checkbox" name="c"/>
排球<input type="checkbox" name="c"/>
<br />
你的学历:
大学<input type="radio" name="r" check="^0$" warning="请选择一项学历"/>
中学<input type="radio" name="r"/>
小学<input type="radio" name="r"/>
<br />
个人介绍:
<textarea name="txts" check="^[\s|\S]{20,}$" warning="个人介绍不能为空,且不少于20字"></textarea>20个字以上
<input type="submit"/>
</form>
---------------------------------------------
Javascript表单编程
    对form元素进行脚本编写
      获取表单的引用
        var oForm = document.forms[0]; //得到第一个表单
        var oOtherForm = document.forms["formz"] //得到名为formz的表单
    
      访问表单字段
        var oTextbox1 = oForm.textbox1; //得到名为"textbox"的字段
        var oTextbox1 = oForm["text box 1"]    //得到名为"text box 1"的字段
      表单字段共性
        var oField 1 = oForm.elements[0];
        oField1.focus(); //设置焦点到第二个字段
        获得焦点:document.forms[0].name1.focus();
      表单提交
        使用图片进行提交
          <input type="image" src="submit.gif" />
        使用submit进行提交
          <input type="submit" value="submit" />
      表单重置
        <input type="button" value="Reset" onclick="document.forms[0].reset()">
    对文本框进行脚本编写
      获取/更改文本框的值
      选择文本
        <input type="button" value="选择文本" onclick="selectText()">
      文本框事件
        <input type="text" name="textbox1" value="" onselect="alert('select')" />
      自动选择文本
        <input type="text" onfocus="this.select()" />
        <textarea onfocus="this.select()"></textarea>
    对列表框和组合框进行脚本编写
      访问选项
      获取/更改选中项
      添加选项
        var ListUtil = new Object();
        ListUtil.add = function(oListbox, sName, sValue){option.appendChild(document.createTextNode(sName));}
      删除选项
        var oListbox = document.getElementsById("selListbox");
        oListbox.remove(0); //移除一个选项
      移动选项
      重新排序选项
    对复选框和单选框进行脚本编写
      得到单选框的值
        <input type="radio" id="male" name="gender" value="male">男</input>
        document.getElementById("male").value
      得到复选框的值
    表单验证
      使用submit事件在错误发生之后捕获错误
      使用change事件在错误发生时捕获
      使用keypress事件在错误发生之前捕获错误
      表单效验最佳实践
        必须对用户有帮助
        不要让人讨厌
        只要有可能,就用HTML功能代替javascript
        一次显示所有错误
        早点捕获错误
        如果拿不准,就不要太严格
------------------------------------------------代码实例:
<script type="text/javascript">
//function validate(){
// var user = document.getElementById("user");
// user.disabled="true";   //表示不可用
// user.focus(); //得到焦点
//      onfocus="validate();" //当某个文本框得到焦点时触发
//     onblur="validate()"    //当某个文本框失去焦点时触发
///}
//获取表单的四种方式
//function validate(){
   //var form1 = document.getElementById("form1");
   //var form = document.forms[0];
   //var form = document.forms["form1"];
   //var form = document.form1;
   //alert(form==form1)
//获取表单中的元素
//var a = form1.user;
//var a = form1.elements[0];
//var a = form1.elements["user"];
//alert(a.value)
//表单提交
//form1.submit();
//}
//获取单选框的值
// function validate(){
// var form1 = document.getElementById("form1");
   //var user = form1.user;
   //user.focus();
   //user.select(); //选中文本框的内容
   //var rName = document.getElementsByName("radioName");
// var a = form1.radioName;
// for(var i=0;i<a.length;i++){
// if(a[i].checked){
//   alert(a[i].value)
// }
// }
//}
//获取复选框的值
/** function validate(){
     var form1 = document.getElementById("form1");
     var check = form1.checkName;
     for(var i=0;i<check.length;i++){
      if(check[i].checked){
       alert(check[i].value)
      }
     }
   }**/
  
   function validate(){
   
   }
//onchange事件
   function chage(){
    var user = document.getElementById("user");
    if(user.value==""){
     document.getElementById("span1").innerHTML="用户名不能为null";
     user.focus();
     return false;
    }else{
     document.getElementById("span1").innerHTML="用户名合法";
     return ture;
    }
   }
</script>
<img name="img1" src="C:\Documents and Settings\黄\桌面\1.jpg" width="200px" height="200px">
  
   <select onchange="document.img1.src=options[selectedIndex].value">
    <option value="C:\Documents and Settings\黄\桌面\ff.gif">敬敬</option>
    <option value="C:\Documents and Settings\黄\桌面\ff.gif">敬敬</option>
    <option value="C:\Documents and Settings\黄\桌面\1.jpg">敬敬</option>
   </select>
Document对象在检验表单中的作用
在制作登录表单验证的过程中,我们经常要用到Document函数对象,这是JavaScript非常重要的函数。W3C把它纳入DOM文档模型对象中。可以说它是元素操作的一个十分重要的方法。
此函数的语法代码如下:
Document.ement.chosts.x   //x可表示为属性也可表示为方法。
如要表示表单reg中名字输入框name的文本内容:document.reg.name.value
要让输入框获得焦点:代码格式为document.reg.name.focus()
下面是一段典型的验证输入函数代码:
<script language="javascript">
function chekname(){
       name=document.reg.name.value;
if(name==""){
              alert("请输入昵称!");
       document.reg.name.vlaue=focus(); 或document.reg.name.focus() ;
       return false;
}else{
       open("chkname.php?name="+name+"","chk","noscrollbars=no,width=200,height=50,top=200,left=200");
}
}    
</script>
此段自定义函数的意思是验证输入框是不是空白,若不是空白则打开一个名为“chk”带有传递参数的窗口进一步验证用户名是不是合法。
Document对象在检验表单中的作用

posted on 2013-05-31 08:00 强强 阅读(255) 评论(0)  编辑  收藏 所属分类: web技巧


只有注册用户登录后才能发表评论。


网站导航: