序列化所有表单数据,包括空

时间:2015-01-26 16:04:47

标签: jquery ajax serialization

我有动态表单,有不同类型的输入字段。可以有文本,paragraf文本选项和复选框。我可以使用序列化功能

jQuery('#frm_submit').submit(function(){
var postData = jQuery(this).serialize();
doFunction(postData);
});

但是没有序列化anu选项或留空的复选框。它需要在服务器端进行所有验证,我需要发送所有数据。怎么做?

1 个答案:

答案 0 :(得分:0)

试试这个:

        jQuery('#frm_submit').find('[name]').not('[type="file"]').each(function () {
            var s = '';
            if ('' !== s) {
                s += '&';
            }
            var name = encodeURIComponent(jQuery(this).attr('name'));
            var value = jQuery(this).val();
            if ('SELECT' === jQuery(this).prop('tagName') && true === jQuery(this).prop('multiple')) {
                // handling select multiple here
                if (null !== value && value.length) {
                    var x = '';
                    for (var i in value) {
                        if ('' !== x) {
                            x += '&';
                        }
                        x += name + '=' + value[i];
                    }
                    s += x;
                }
                else {
                    s += name + '='; // null
                }
            }
            else {
                s += name + '=' + value;
            }
            doFunction(s);            
            return false;
        });