jquery序列化表单插件

2017-03-06  本文已影响45人  nickfox
    (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 ()
上一篇下一篇

猜你喜欢

热点阅读