Maison interface Web js tutoriel FormValid0.5版本发布,带ajax自定义验证例子_表单特效

FormValid0.5版本发布,带ajax自定义验证例子_表单特效

May 16, 2016 pm 07:10 PM

最新更新修改了当input元件name有包含[],把焦点移到元件上时会出现JS错误,只有IE是这种情况,没找到很好的解决办法,我只是把这种情况给排除了,就是当元件name有包含[]不把焦点移上去,哪果有好的解决办法请联系我。
并作了 demo8 - 结合jquery实现ajax自定义验证
下载:formvalid.zip
复制代码 代码如下:

/*
 * Copyright (c) 2006-2008 coderhome.net
 * All rights reserved.
 * Support : 志凡(dzjzmj@163.com)
 *
 * Version :  0.5
 */

var FormValid = function(frm) {
    this.frm = frm;
    this.errMsg = new Array();
    this.errName = new Array();

    this.required = function(inputObj) {
        if (typeof(inputObj) == "undefined" || inputObj.value.trim() == "") {
            return false;
        }
        return true;
    }

    this.eqaul = function(inputObj, formElements) {
        var fstObj = inputObj;
        var sndObj = formElements[inputObj.getAttribute('eqaulName')];

        if (fstObj != null && sndObj != null) {
            if (fstObj.value != sndObj.value) {
               return false;
            }
        }
        return true;
    }

    this.gt = function(inputObj, formElements) {
        var fstObj = inputObj;
        var sndObj = formElements[inputObj.getAttribute('eqaulName')];

        if (fstObj != null && sndObj != null && fstObj.value.trim()!='' && sndObj.value.trim()!='') {
            if (fstObj.value                  return false;
            }
        }
        return true;
    }

    this.compare = function(inputObj, formElements) {
        var fstObj = inputObj;
        var sndObj = formElements[inputObj.getAttribute('objectName')];
        if (fstObj != null && sndObj != null && fstObj.value.trim()!='' && sndObj.value.trim()!='') {
            if (!eval('fstObj.value' + inputObj.getAttribute('operate') + 'sndObj.value')) {
                 return false;
            }
        }
        return true;
    }

    this.limit = function (inputObj) {
        var len = inputObj.value.length;
        if (len) {
            var minv = inputObj.getAttribute('min');
            var maxv = inputObj.getAttribute('max');
            minv = minv || 0;
            maxv = maxv || Number.MAX_VALUE;
            return minv         }
        return true;
    }

    this.range = function (inputObj) {
        var val = parseInt(inputObj.value);
        if (inputObj.value) {
            var minv = inputObj.getAttribute('min');
            var maxv = inputObj.getAttribute('max');
            minv = minv || 0;
            maxv = maxv || Number.MAX_VALUE;

            return minv         }
        return true;
    }

    this.requireChecked = function (inputObj) {
        var minv = inputObj.getAttribute('min');
        var maxv = inputObj.getAttribute('max');
        minv = minv || 1;
        maxv = maxv || Number.MAX_VALUE;

        var checked = 0;
        var groups = document.getElementsByName(inputObj.name);

        for(var i=0;i            if(groups[i].checked) checked++;

        }
        return minv     }

    this.filter = function (inputObj) {
        var value = inputObj.value;
        var allow = inputObj.getAttribute('allow');
        if (value.trim()) {
            return new RegExp("^.+\.(?=EXT)(EXT)$".replace(/EXT/g, allow.split(/\s*,\s*/).join("|")), "gi").test(value);
        }
        return true;
    }

    this.isNo = function (inputObj) {
        var value = inputObj.value;
        var noValue = inputObj.getAttribute('noValue');
        return value!=noValue;
    }
    this.checkReg = function(inputObj, reg, msg) {
        inputObj.value = inputObj.value.trim();

        if (inputObj.value == '') {
            return;
        } else {
            if (!reg.test(inputObj.value)) {
                this.addErrorMsg(inputObj.name,msg);
            }
        }
    }

    this.passed = function() {
        if (this.errMsg.length > 0) {
            FormValid.showError(this.errMsg,this.errName,this.frm.name);
            if (this.errName[0].indexOf('[')==-1) {
                frt = document.getElementsByName(this.errName[0])[0];
                if (frt.type!='radio' && frt.type!='checkbox') {
                    frt.focus();
                }
            }
            return false;
        } else {
          return FormValid.succeed();
        }
    }

    this.addErrorMsg = function(name,str) {
        this.errMsg.push(str);
        this.errName.push(name);
    }

    this.addAllName = function(name) {
        FormValid.allName.push(name);
    }

}
FormValid.allName = new Array();
FormValid.showError = function(errMsg) {
    var msg = "";
    for (i = 0; i         msg += "- " + errMsg[i] + "\n";
    }

    alert(msg);
}
FormValid.succeed = function () {
    return true;
}
function validator(frm) {
    var formElements = frm.elements;
    var fv = new FormValid(frm);

    for (var i=0; i        var validType = formElements[i].getAttribute('valid');
        var errorMsg = formElements[i].getAttribute('errmsg');
        if (!errorMsg) {
            errorMsg = '';
        }
        if (validType==null) continue;
        fv.addAllName(formElements[i].name);

        var vts = validType.split('|');
        var ems = errorMsg.split('|');
        for (var j=0; j            var curValidType = vts[j];
            var curErrorMsg = ems[j];

            switch (curValidType) {
            case 'isNumber':
            case 'isEmail':
            case 'isPhone':
            case 'isMobile':
            case 'isIdCard':
            case 'isMoney':
            case 'isZip':
            case 'isQQ':
            case 'isInt':
            case 'isEnglish':
            case 'isChinese':
            case 'isUrl':
            case 'isDate':
            case 'isTime':
                fv.checkReg(formElements[i],RegExps[curValidType],curErrorMsg);
                break;
            case 'regexp':
                fv.checkReg(formElements[i],new RegExp(formElements[i].getAttribute('regexp'),"g"),curErrorMsg);
                break;
            case 'custom':
                if (!eval(formElements[i].getAttribute('custom')+'(formElements[i],formElements)')) {
                    fv.addErrorMsg(formElements[i].name,curErrorMsg);
                }
                break;
            default :
                if (!eval('fv.'+curValidType+'(formElements[i],formElements)')) {
                    fv.addErrorMsg(formElements[i].name,curErrorMsg);
                }
                break;
            }
        }
    }
    return fv.passed();
}
String.prototype.trim = function() {
    return this.replace(/^\s*|\s*$/g, "");
}
var RegExps = function(){};
RegExps.isNumber = /^[-\+]?\d+(\.\d+)?$/;
RegExps.isEmail = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;
RegExps.isPhone = /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/;
RegExps.isMobile = /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/;
RegExps.isIdCard = /(^\d{15}$)|(^\d{17}[0-9Xx]$)/;
RegExps.isMoney = /^\d+(\.\d+)?$/;
RegExps.isZip = /^[1-9]\d{5}$/;
RegExps.isQQ = /^[1-9]\d{4,10}$/;
RegExps.isInt = /^[-\+]?\d+$/;
RegExps.isEnglish = /^[A-Za-z]+$/;
RegExps.isChinese =  /^[\u0391-\uFFE5]+$/;
RegExps.isUrl = /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^\"\"])*$/;
RegExps.isDate = /^\d{4}-\d{1,2}-\d{1,2}$/;
RegExps.isTime = /^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}$/;

本地下载
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Remplacer les caractères de chaîne en javascript Remplacer les caractères de chaîne en javascript Mar 11, 2025 am 12:07 AM

Remplacer les caractères de chaîne en javascript

Tutoriel de configuration de l'API de recherche Google personnalisé Tutoriel de configuration de l'API de recherche Google personnalisé Mar 04, 2025 am 01:06 AM

Tutoriel de configuration de l'API de recherche Google personnalisé

Exemple Couleurs Fichier JSON Exemple Couleurs Fichier JSON Mar 03, 2025 am 12:35 AM

Exemple Couleurs Fichier JSON

8 Superbes plugins de mise en page JQuery Page 8 Superbes plugins de mise en page JQuery Page Mar 06, 2025 am 12:48 AM

8 Superbes plugins de mise en page JQuery Page

Créez vos propres applications Web Ajax Créez vos propres applications Web Ajax Mar 09, 2025 am 12:11 AM

Créez vos propres applications Web Ajax

Qu'est-ce que & # x27; ceci & # x27; en javascript? Qu'est-ce que & # x27; ceci & # x27; en javascript? Mar 04, 2025 am 01:15 AM

Qu'est-ce que & # x27; ceci & # x27; en javascript?

Améliorez vos connaissances jQuery avec le spectateur source Améliorez vos connaissances jQuery avec le spectateur source Mar 05, 2025 am 12:54 AM

Améliorez vos connaissances jQuery avec le spectateur source

10 feuilles de triche mobiles pour le développement mobile 10 feuilles de triche mobiles pour le développement mobile Mar 05, 2025 am 12:43 AM

10 feuilles de triche mobiles pour le développement mobile

See all articles