IE中的JQuery FormData - 更改为JQuery Form插件

时间:2015-11-03 09:45:32

标签: javascript jquery forms

我有一个包含大量输入的表单,包括两个文件上传字段。我有一切与FormData合作,但我已经意识到这一点 这在IE8或IE9中不起作用(我也需要它)。因此,我可能会切换并使用JQuery Form插件。

我不会显示html表单,因为它是很多代码,但它只是一个包含很多字段的简单表单。我首先做的是使用JQuery Validate插件进行一些验证。如下所示,所有FormData内容都在submitHandler中完成。

$(function () {
    var validator = $("#my-form").validate({
        errorContainer: "#validation-results",
        errorLabelContainer: "#validation-results",
        errorElement: "li",
        groups: {
            fileGroup: "fileOne fileTwo"
        },
        rules: {
            //All the appropriate rules
        },
        messages: {
            //All the appropriate messages
        },
        submitHandler: function (form) {
            formData   = new FormData(),
            params     = $(form).serializeArray(),
            fileOne    = $(form).find('[name="fileOne"]')[0].files,
            fileTwo    = $(form).find('[name="fileTwo"]')[0].files;

            if(fileOne.length != 0) {
                $.each(fileOne, function(i, file) {
                    formData.append('fileOne-' + i, file);
                });
            }

            if(fileTwo.length != 0) {
                $.each(fileTwo, function(i, file) {
                    formData.append('fileTwo-' + i, file);
                });
            }

            $.each(params, function(i, val) {
                formData.append(val.name, val.value);
            });

            $.ajax({
                type: "POST",
                url: "php/process.php",
                dataType: "json",
                data: formData,
                mimeType: "multipart/form-data",
                contentType: false,
                processData: false
            }).done(function (response) {

            });
            return false;
        }
    });
});

我的主要问题是如何将JQuery Form Plugin与上面的JQuery Validate代码集成?我假设我使用上面的submitHandler,但它只是添加以下内容的情况 复制我目前在submitHandler中的内容?

$("#my-form").ajaxSubmit(); 
return false; 

关于如何将两者结合起来的任何建议都会很棒。我的主要目标是在IE中正常运行。

非常感谢

0 个答案:

没有答案