基于jquery的form表单验证

来源:互联网 发布:手机淘宝解绑手机号码 编辑:程序博客网 时间:2024/06/05 10:58
$.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);                }            }        }    }});