⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 verify.js

📁 asp的bbs程序
💻 JS
字号:
var Verify = {};
Verify.IsEmpty = function (text) {
    if (typeof(text) == 'string' && text.Trim() != '')
        return false;
    return true;
};
Verify.IsNumber = function (text) {
    if (this.IsInt(text) || this.IsFloat(text))
        return true;
    return false;
};
Verify.IsInt = function (text) {
    if (/^\d+$/.test(text))
        return true;
    return false;
};
Verify.IsFloat = function (text) {
    if (/^\d*\.\d+$/.test(text))
        return true;
    return false;
};
// 标识是否检查所有表单项
Verify.CheckAll = false;
// [内部调用] 检查所有必填表单项是否填写完毕
Verify._Check = function (/* form, fieldname1, fieldname2, ..., fieldnameN */) {
    if (arguments.length < 2) return;
    var form = arguments[0];
    if (!form.tagName || form.tagName.toLowerCase() != 'form') return;
    var check = arguments[arguments.length - 1];

    var over = true;
    for (var i = 1; i < arguments.length; i++) {
        var _over = true;
        var field = form[arguments[i]];
        if (!field) continue;
        // input[type="checkbox"],input[type="radio"]
        if (field.length > 1 && !field.tagName) {
            for (var j = 0; j < field.length; j++) {
                if (this.CheckOne(field[j])) break;
            }
            if (j == field.length) {
                _over = false;
                if (over && !_over) over = false;
                if (!this.CheckAll) break;
            }
            if (this.CheckAll) Verify.Callback(field[j % field.length]);
        }
        // input[type="text"],select,textarea
        else {
            _over = this.CheckOne(field);
            if (over && !_over) over = false;
            if (!over && !this.CheckAll) break;
            if (this.CheckAll) Verify.Callback(field);
        }
    }
    Verify.CheckAll = false;//alert(over);
    return over;
};
// [外部调用] 检查所有必填表单项是否填写完毕
Verify.Check = function (/* form, submitname, fieldname1, fieldname2, ..., fieldnameN, checkFunction */) {
    if (arguments.length < 2) return;
    var form = arguments[0];
    if (typeof form != 'object') form = document.forms[form];
    if (!form.tagName || form.tagName.toLowerCase() != 'form') return;
    var submit = form.elements[arguments[1]];
    if (!submit.tagName || submit.tagName.toLowerCase() != 'input' || submit.type != 'submit') return;
    var check = arguments[arguments.length - 1];
    if (TypeOf(check) != 'function') return;

    var args = Array.prototype.slice.call(arguments, 2, arguments.length - 1);
    args.unshift(form);
    args.push(check);
    this.AttachEvent.apply(this, args);

    var b = this._Check.apply(this, args);
    submit.disabled = !b;

    return b;
};
// 表单域对象绑定事件
Verify.AttachEvent = function (/* form, fieldname1, fieldname2, ..., fieldnameN, checkFunction */) {
    var form = arguments[0];
    var check = arguments[arguments.length - 1];

    var args = Array.prototype.slice.call(arguments, 0, arguments.length - 1);
    if (check) {
        if (check.args) {
            if (check.args.join() != args.join())
                this.AttachEvent.apply(this, check.args.concat(null));
            else
                return;
        }
        check.args = args;
        //alert(check.args + ' ' + check.args.concat(''));
    }

    for (var i = 1; i < arguments.length - 1; i++) {
        var field = form[arguments[i]];
        if (!field) continue;
        // input[type="checkbox"],input[type="radio"]
        if (field.length > 1 && !field.tagName) {
            for (var j = 0; j < field.length; j++) {
                if (check) {
                    field[j].check = check;
                    Events.AttachEvent(field[j], 'click', this.ToCall);
                    //field[j].onclick = function () {Verify.Callback(this, check)};
                }
                else {
                    Events.RemoveEvent(field[j], 'click', this.ToCall);
                }
            }
        }
        // input[type="text"],select,textarea
        else {
            field.check = this.ToCall;
            switch (field.tagName.toLowerCase()) {
                case 'input':
                    switch (field.type) {
                        case 'text':
                        case 'password':
                            if (check) {
                                field.check = check;
                                Events.AttachEvent(field, 'blur', this.ToCall);
                                Events.AttachEvent(field, 'change', this.ToCall);
                                Events.AttachEvent(field, 'keyup', this.ToCall);
                            }
                            else {
                                Events.RemoveEvent(field, 'blur', this.ToCall);
                                Events.RemoveEvent(field, 'change', this.ToCall);
                                Events.RemoveEvent(field, 'keyup', this.ToCall);
                            }
                            //field.onblur = field.onchange = field.onkeyup = check && (function () {Verify.Callback(this, check)});
                            break;
                        case 'radio':
                        case 'checkbox':
                            if (check) {
                                field.check = check;
                                Events.AttachEvent(field, 'click', this.ToCall);
                            }
                            else {
                                Events.RemoveEvent(field, 'click', this.ToCall);
                            }
                            //field.onclick = check && (function () {Verify.Callback(this, check)});
                            break;
                    }
                    //field.onblur = field.onchange = field.onkeyup = function () {Verify.Callback(this);check();};
                    break;
                case 'select':
                    if (check) {
                        field.check = check;
                        Events.AttachEvent(field, 'blur', this.ToCall);
                        Events.AttachEvent(field, 'change', this.ToCall);
                    }
                    else {
                        Events.RemoveEvent(field, 'blur', this.ToCall);
                        Events.RemoveEvent(field, 'change', this.ToCall);
                    }
                    //field.onblur = field.onchange = check && (function () {Verify.Callback(this, check)});
                    break;
                case 'textarea':
                    if (check) {
                        field.check = check;
                        Events.AttachEvent(field, 'blur', this.ToCall);
                        Events.AttachEvent(field, 'change', this.ToCall);
                        Events.AttachEvent(field, 'keyup', this.ToCall);
                    }
                    else {
                        Events.RemoveEvent(field, 'blur', this.ToCall);
                        Events.RemoveEvent(field, 'change', this.ToCall);
                        Events.RemoveEvent(field, 'keyup', this.ToCall);
                    }
                    //field.onblur = field.onchange = field.onkeyup = check && (function () {Verify.Callback(this, check)});
                    break;
            }
        }
    }
};
// @Return:
// true: 通过
// false: 不通过
Verify.CheckOne = function (field) {
    switch (field.tagName.toLowerCase()) {
        case 'input':
            switch (field.type) {
                case 'text':
                case 'password':
                    return !this.IsEmpty(field.value);
                    break;
                case 'radio':
                case 'checkbox':
                    var fields = field.form[field.name];
                    if (fields.length) {
                        for (var i = 0; i < fields.length; i++) {
                            if (fields[i].checked) break;
                        }
                        return (i == fields.length ? false : true);
                    }
                    else {
                        return fields.checked;
                    }
                    break;
            }
            break;
        case 'select':
            return field.options[field.selectedIndex].value != '';
            break;
        case 'textarea':
            return !this.IsEmpty(field.value);
            break;
    }
    return false;
};
Verify.ToCall = function () {
    //alert(this);
    Verify.Callback(this, this.check)
}
// 执行回调用户定义的方法
Verify.Callback = function (field, check) {
    var checkone;
    try {
        checkone = eval(field.name + 'Check');
    }
    catch (e) {
        checkone = function () {};
    }
    var b = this.CheckOne(field);
    if (checkone.b !== b) {
        checkone.b = b;
        checkone(b);
    }
    check && check();
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -