基于jquery的form表单验证

$.extend({

    formEntity: {
        clearForm: function (target) {
            target.find('[name]').each(function () {
                $(this).val('');
            });
        },
        validateForm: function (target) {

            var checkEmpty = false;
            target.find('[name]').each(function () {
                $(this).siblings("i").remove();
                var value = $.trim($(this).val());
                if (this.required && !$.formEntity.validateRule(this)) {
                    checkEmpty = true;
                    $(this).after("<i style='color:red;'>&nbsp;"+$(this).attr('message')+"</i>");
                }
            });
            return checkEmpty;
        },

        validateRule : function(ele){

            var result = false;
            var type = ele.type;
            switch (type){
                case 'text':
                    result = $.formEntity.text(ele);
                    break;
                case  'email':
                    result = $.formEntity.email(ele);
                    break;
                case 'number':
                    result = $.checkNum(ele);
                    break;
                default:
                    result = $.formEntity.text(ele);
            }
            return result;
        },

        text: function (ele) {

            var _result =  true;
            var _val = $.trim($(ele).val());
            if (_val === '') {
                _result = false;
            }
            var _min = $(ele).attr('minLength');
            var _max = $(ele).attr('max_Length');
            if (_min && _max) {
                _result = (_val.length >= _min && _val.length <= _max);
            }
            if (_min && !_max) {
                _result = (_val.length >= _min);
            }
            if (!_min && _max) {
                _result = (_val.length <= _max);
            }
            var _parttern = $(ele).attr('parttern');
            if(_parttern){
                var _reg = new RegExp(_parttern);
                _result = _reg.test(_val) && _result;
            }
            return _result;
        },
        email : function(ele){

            var _result =  true;
            var _val = $.trim($(ele).val());
            var _parttern = $(ele).attr('parttern');
            if(!_parttern){
                var _reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
                _result = _reg.test(_val);
            }else{
                _result = $.formEntity.text(ele);
            }
            return _result;
        },

        getFormParams: function (target, params) {
            target.find('[name]').each(function () {
                var value = $.trim($(this).val());
                if (value != '') {
                    params[this.name] = value;
                }
            });
            return params;
        },
        setForm: function (target, params) {
            target.find('[name]').each(function () {
                $(this).val(params[this.name]);
            });
        }
    },

    checkNum : function(ele){

        return !/^((([1-9]+\d*)?|\d?)(\.\d*)?)?$/.test(ele.value);
    },

    /**
     *
     * @param url
     * @param param
     *      查询参数
     */
    exportFile : function(url,param){
        var exportForm = document.createElement("form");
        exportForm.action = url;
        exportForm.method = "post";
        exportForm.style.display = "none";
        for (var key in param) {
            var option = document.createElement("input");
            option.name = key;
            option.value = param[key];
            exportForm.appendChild(option);
        }
        document.body.appendChild(exportForm);
        exportForm.submit();
    },
    Arrays  : {

        deleteItems: function (arrays, items) {
            if ($.dataType.isString(items)) {
                return $.grep(arrays, function (array) {
                    return array != items;
                });
            } else if ($.dataType.isArray(items)) {
                $.each(items, function (i, item) {
                    arrays.splice($.inArray(item, arrays), 1);
                });
                return arrays;
            }
        }
    },

    dataType: {
        isArray: function (obj) {
            return (typeof obj == 'object') && obj.constructor == Array;
        },
        isString: function (str) {
            return (typeof str == 'string') && str.constructor == String;
        },

        isNumber: function (obj) {
            return (typeof obj == 'number') && obj.constructor == Number;
        },
        isDate: function (obj) {
            return (typeof obj == 'object') && obj.constructor == Date;
        },

        isFunction: function (obj) {
            return (typeof obj == 'function') && obj.constructor == Function;
        },
        isObject: function (obj) {
            return (typeof obj == 'object') && obj.constructor == Object;
        },
    },

/**
     *
     * @param ele
     * @param param
     *
     *  textField
     *  valueField
     *  defaultEmpty 是否默认为空
     *  dataList 下拉数据
     *  dataType 数据类型 list listmap
     *
     */
    loadCombobox : function (ele,param){

        var textField = param.textField;
        var valueField = param.valueField;
        var defaultEmpty = param.defaultEmpty;
        var dataList = param.dataList;
        var dataType = param.dataType;
        if(dataList){
            ele.empty();
            if(defaultEmpty){
                var option = $('<option></option>');
                option.text('');
                option.val('');
                ele.append(option);
            }
            if(!dataType || dataType=='list'){
                for (var i = 0; i < dataList.length; i++) {
                    var option = $('<option></option>');
                    option.text(dataList[i]);
                    option.val(dataList[i]);
                    ele.append(option);
                }
            }else{
                for (var i = 0; i < dataList.length; i++) {
                    var option = $('<option></option>');
                    option.text(dataList[i][textField]);
                    option.val(dataList[i][valueField]);
                    ele.append(option);
                }
            }
        }
    }
});

猜你喜欢

转载自blog.csdn.net/lkw411526/article/details/72576659
今日推荐