自己写的一个表单验证类

表单验证类使用说明:

myvalidation类的使用说明:
目前实现功能:form表单的非空验证和手机号码验证
默认弹出提示框,提示框的内容
优先选择:input对应lable文本+"不能为空"
其次选择:input的placeholder字段
因此至少保证,上述至少有一种是想要的警告内容

使用方法:
1,jsp页面中引入myvalidation.js文件
2,删除一切jsp页面原提交按钮的onclick="xxx.submit();事件
3,form表单字段非空:对应字段加上class:required
4,form表单字段为电话号码格式,对应字段加上class: phoneNum
5,如果是通过form表单内部的type=submit按钮提交,步骤1后,无需其他改变
6,如果是通过form表单外其他按钮的click事件触发表单提价,经步骤1后,还需要为该按钮添加class: form-submit;data-form的值为对应表单的name属性

表单验证类源代码

function isNull(domElement){
    if(domElement==null||domElement==undefined||(domElement.trim&&domElement.trim()=="")){
        return true;
    }else{
        return false;
    }
}

function isPhoneNum(num){
    if(isNull(num)){
        return false;
    }
    // pattern=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/;
    var pattern= /^1\d{10}$/;
    if(pattern.test(num)){
        return true;
    }else{
        return false;
    }
}

// 验证单个表格,如果字段包含required类,则该字段不能为空,如果包含phoneNum类,则需要为电话号码
function isFormValid(formElement){
    if(isNull(formElement)){
        return false;
    }
    for(var i=0;i<formElement.elements.length;i++){
        var temp=formElement.elements[i];
        var content=temp.value;
        var classText=temp.getAttribute("class");
        if(isNull(classText)){
            continue;
        }
        if(classText.indexOf("required")!=-1){
            if(isNull(content)){
                var previousNode=temp.previousSibling.previousSibling;
                // 首先通过label来确定弹出什么样的
                if(!isNull(previousNode)&&(previousNode.nodeName=="LABEL"||prevousNode.nodeName=="label")){
                    alert(previousNode.firstChild.data+"不能为空!");
                    return false;
                }else{
                    var placeHolderText=temp.getAttribute("placeholder");
                    if(!isNull(placeHolderText)){
                        alert(placeHolderText);
                        return false;
                        }
                }
            }
        }else{
            if(classText.indexOf("phoneNum")!=-1){
                if(!isPhoneNum(temp.value)){
                    alert("手机号码格式不正确!");
                    return false;
                }
        }

        }
    }
    // 否则通过验证
    // formElement.submit();
    return true;
}
// 检测页面上的所有form,这种适合于通过form内的submit按钮提交类型
// 如果是通过form之外的按钮触发submit事件,这种方法是监听不到的
function checkAllPageForm(){
    var forms=document.forms;
    for(var i=0;i<forms.length;i++){
        var temp=forms[i];
        $(temp).submit(function(event){
            if(isFormValid(temp)){
                temp.submit();
            }else{
                if(event.preventDefault){
                    event.preventDefault();
                }else{
                    event.returnValue=false;
                }                

            }
        });

    }
}

// 如果是通过form表单外的按钮提交,需要监听表单的click事件
//统一规则,为这类按钮添加统一类form-submit,同时添加data-form字段指向要提交表单的name属性
function checkPageFormSubmitByButton(){
    $btn_submit=$(".form-submit");
    if($btn_submit.length>0){
        $btn_submit.click(function(event){
            var form_name=this.getAttribute("data-form");
            if(!isNull(form_name)){
                var form=document.forms[form_name];
                if(isFormValid(form)){
                //    alert(isFormValid);
                    form.submit();
                }else{
                    if(event.preventDefault){
                        event.preventDefault();
                    }else{
                        event.returnValue=false;
                    }
                }
            }

        });
    }
}
$(function(){
    checkAllPageForm();
    checkPageFormSubmitByButton();
});
时间: 2024-10-11 14:23:34

自己写的一个表单验证类的相关文章

一个PHP常用表单验证类(基于正则)

一个基于正则表达式的PHP常用表单验证类,作者:欣然随风.这个表单判断类的功能有:验证是否为指定长度的字母/数字组合.验证是否为指定长度汉字.身 份证号码验证.是否是指定长度的数字.验证邮件地址.电话号码.验证邮编.url地址.数据库转义.数据格式还原等.在平时的PHP项目开发中,这些都比 较常用哦,下面把代码分享给大家: <?php /** * 页面作用:常用表单验证类 * 作 者:欣然随风 * QQ:276624915 */ class class_post { //验证是否为指定长度的字母

JS表单验证类HTML代码实例

以前用的比较多的一个JS表单验证类,对于个人来说已经够用了,有兴趣的可以在此基础上扩展成ajax版本.本表单验证类囊括了密码验证.英文4~10个 字符验证. 中文非空验证.大于10小于100的数字.浮点数验证.日期验证.邮件检查.网址验证.固定电话和手机号码验证.IP地址验证.邮编和QQ号码验证. MSN和身份证验证等. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

php常用表单验证类用法实例

<?php /** * 页面作用:常用表单验证类 * 作 者:欣然随风 * QQ:276624915 */ class class_post { //验证是否为指定长度的字母/数字组合 function fun_text1($num1,$num2,$str) { Return (preg_match("/^[a-zA-Z0-9]{".$num1.",".$num2."}$/",$str))?true:false; } //验证是否为指定长度

javascript:正则表达式、一个表单验证的例子

阅读目录 本文内容: 正则表达式: 利用正则表达式进行表单验证的例子: 回到顶部 本文内容: 正则表达式 正则表达式的使用方法 正则表达式的特殊匹配字符 正则表达式修饰符 利用正则表达式进行表单验证的例子 首发日期:2018-05-13 回到顶部 正则表达式: 正则表达式的使用方法: 首先创建正则表达式对象: [正则表达式的字符规则:如果是没有特殊意义的字符,直接写:如果是有特殊意义的,直接写:如果想将特殊意义的字符转成非特殊意义的,前面使用\] 可以通过RegExp对象创建正则表达式对象: v

一个表单验证

<!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-

php 表单验证类

<?php  class Vcode {   private $width; //宽   private $height; //高   private $num;  //数量   private $code; //验证码   private $img;  //图像的资源     //构造方法, 三个参数   function __construct($width=80, $height=20, $num=4) {    $this->width = $width;    $this->h

Django-website 程序案例系列-16 modle.form(表单验证)

案例程序: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/fm/" method="POST"> #3个输入框分别是user/pwd/ema

ajax实现登陆表单验证功能

ajax实现登陆表单验证功能:使用ajax进行表单登陆验证功能更为的人性化,下面提供一个表单验证的实例代码,代码较为简单,仅仅作为演示之用而已,多实用的ajax表单验证功能都较为复杂.下面分布分出代码:一.静态页面表单部分代码: <script type="text/javascript" src="http://www.softwhy.com/mytest/jQuery/jquery-1.8.3.js"></script> <scri

inform表单验证,正则表达式,用户名,身份证,密码,验证码

最近利用空闲时间写了部分表单验证,包括用户名,身份证,密码,验证码,仅为自己巩固最近所学的知识 表单的样式使用的是table布局,因为觉得DIV布局定位比较麻烦,table有三列,分别为基本信息,输入的信息,提示信:输入信息栏,插入表单 1 <body> 2 <table> 3 <tr> 4 <td><p>会员名:</p></td> 5 <td><input type="text" n