jquery序列化表单插件

    (function($) {
        $.fn.serializeJson = function() {
            var inputs = $(this).find("input,textarea,select");
            var o = {};
            $.each(inputs, function(i, n) {
                switch (n.nodeName.toUpperCase()) {
                    case "INPUT":
                        if ($(n).is(":checkbox")) {
                            if ($(n).is(":checked")) {
                                o[n.name] = true;
                            } else {
                                o[n.name] = false;
                            }
                        } else if ($(n).is(":radio")) {
                            if ($(n).is(":checked")) {
                                o[n.name] = n.value;
                            }
                        } else if ($(n).is(":file")) {
                            return true;
                        } else {
                            if (n.name) {
                                o[n.name] = n.value;
                            }
                        }

                        break;
                    case "TEXTAREA":
                        o[n.name] = $(n).val();
                        break;
                    case "SELECT":
                        o[n.name] = n.value;
                        break;
                }
            });
            return o;
        }

    })(jQuery);
input、select、rextarea需要设置name,序列化后的json的key即为name
用法:$(ele).serializeJson ()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容