您的位置:首页 > 其它

jqurey 获取 form 表单中所有数据,支持多维数组

2016-03-11 16:24 375 查看
jqurey 获取 form 表单中所有数据,支持多维数组


JQurey.formHelper

jQuery.formHelper = { 
    status     : true, 
    rules      : null, 
    tagName    : '', 
    error      : function (msg) 
    { 
        console.log(msg); 
        jQuery.formHelper.status = false; 
        return false; 
    }, 
    success    : function () 
    { 
        jQuery.formHelper.status = true; 
        return true; 
    }, 
    regRul     : { 
        "require" : /.+/, 
        "email"   : /^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/, 
        "url"     : /^http:\\/\\/[A-Za-z0-9]+\\.[A-Za-z0-9]+[\\/=\\?%\\-&_~`@[\\]\\":+!]*([^<>\\"\\"])*$/, 
        "currency": /^\\d+(\\.\\d+)?$/, 
        "number"  : /^\\d+$/, 
        "zip"     : /^[1-9]\\d{5}$/, 
        "integer" : /^[-\\+]?\\d+$/, 
        "double"  : /^[-\\+]?\\d+(\\.\\d+)?$/, 
        "english" : /^[A-Za-z]+$/ 
    }, 
    otherRul   : 
4000

        ">"     : function (val, point, msg) 
        { 
            return (val > point) ? jQuery.formHelper.success() : jQuery.formHelper.error(msg); 
        }, 
        'in'    : function (val, point, msg) 
        { 
            return ($.inArray(val, point) != -1) ? jQuery.formHelper.success() : jQuery.formHelper.error(msg); 
        }, 
        '=='    : function (val, point, msg) 
        { 
            return (val == point) ? jQuery.formHelper.success() : jQuery.formHelper.error(msg); 
        }, 
        'remote': function (val, point, msg) 
        { 
            $.ajax({ 
                type    : "post", 
                dataType: "json", 
                url     : point[0], 
                data    : jQuery.formHelper.tagName + '=' + val, 
                success : point[1] 
            }); 
 
        } 
    }, 
    getClass   : function (object) 
    { 
        return Object.prototype.toString.call(object).match(/^\\[object\\s(.*)\\]$/)[1]; 
    }, 
    getFormData: function (id) 
    { 
        var _url   = $('#' + id).serialize(); 
        var fixStr = function (str) 
        { 
            return decodeURIComponent(str.replace(/\\+/g, '%20')); 
        }; 
        var act1   = function (str) 
        { 
            str.replace(reg1, function (a, b, c) 
            { 
                arg[b] = (typeof c == 'undefined' ? '' : c); 
            }); 
        }; 
        var act2   = function (str) 
        { 
            str.replace(reg2, function (a, b, c, d) 
            { 
                arg[b]    = arg[b] || {}; 
                arg[b][c] = (typeof d == 'undefined' ? '' : d); 
            }); 
        }; 
        var act3   = function (str) 
        { 
            str.replace(reg3, function (a, b, c, d, e) 
            { 
                arg[b]       = arg[b] || {}; 
                arg[b][c]    = arg[b][c] || {}; 
                arg[b][c][d] = (typeof e == 'undefined' ? '' : e); 
            }); 
        }; 
        var url    = f
deff
ixStr(_url).replace(/'|"/g, ''); 
        var arr    = url.split('&'); 
        var length = arr.length; 
        var reg1   = /(\\w+)=(\\w+)?/ig; 
        var reg2   = /(\\w+)\\[(\\w+)\\]=(\\w+)?/ig; 
        var reg3   = /(\\w+)\\[(\\w+)\\]\\[(\\w+)\\]=(\\w+)?/ig; 
        var arg    = {}; 
        for (var i = 0; i < length; i++) 
        { 
            var act = reg1.test(arr[i]) ? act1 : (reg2.test(arr[i]) ? act2 : (reg3.test(arr[i]) ? act3 : '')); 
            act(arr[i]); 
        } 
        return arg; 
    }, 
    submit     : function (formId, submitBtnId, action, success) 
    { 
        $('#' + submitBtnId).click(function () 
        { 
            jQuery.formHelper.check(jQuery.formHelper.rules); 
            if (jQuery.formHelper.status) 
            { 
                $.ajax({ 
                    async   : false, 
                    type    : "post", 
                    dataType: "json", 
                    url     : action, 
                    data    : $('#' + formId).serialize(), 
                    success : success 
                }); 
            } 
        }); 
    }, 
    check      : function (rules) 
    { 
        jQuery.formHelper.rules = rules; 
        $(rules).each(function () 
        { 
            jQuery.formHelper.tagName =this[0]; 
            var val = $('[name=' + this[0] + ']').val(); 
            var rul = this; 
            jQuery.formHelper.done(rul, val); 
        }); 
 
    }, 
    validate   : function (rules) 
    { 
        jQuery.formHelper.rules = rules; 
        $(rules).each(function () 
        { 
            jQuery.formHelper.tagName =this[0]; 
            $('[name=' + this[0] + ']').keyup({rul: this}, function (event) 
            { 
                var val = $(this).val(); 
                var rul = event.data.rul; 
                jQuery.formHelper.done(rul, val); 
            }); 
        }); 
        return this; 
    }, 
    done       : function (rul, val) 
    { 
        if ($.inArray(rul[1], jQuery.formHelper.regRul) != -1) 
        { 
            return (jQuery.formHelper.regRul[(rul[1])].test(val)) ? jQuery.formHelper.success() : jQuery.formHelper.error(rul[2]); 
        } 
        else if (jQuery.formHelper.otherRul.hasOwnProperty(rul[1])) 
        { 
            return jQuery.formHelper.otherRul[rul[1]](val, rul[3], rul[2]); 
        } 
        else if (jQuery.formHelper.getClass(rul[1]) == 'RegExp') 
        { 
            return ((rul[1]).test(val)) ? jQuery.formHelper.success() : jQuery.formHelper.error(rul[2]); 
        } 
        else 
        { 
            return jQuery.formHelper.error('没有匹配规则'); 
        } 
    } 
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jqurey form data