Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax使用FormData对象创建同一类的多个表单_Javascript_Ajax_Form Data - Fatal编程技术网

Javascript ajax使用FormData对象创建同一类的多个表单

Javascript ajax使用FormData对象创建同一类的多个表单,javascript,ajax,form-data,Javascript,Ajax,Form Data,因此,我使用FormData对象通过ajax向服务器发送文件和POST数据。 一方面,它很好用。但是当我有多个具有相同类名的表单时,不会发送POST数据。下面是第一个工作示例和发送,不发送数据。 它们基本相同,只是FormData对象使用$form.get(0),第二个使用$form。第二次,我尝试了$form.get(),$form[0],但没有成功。我是否使用了FormData错误 EXAMPLE 1 var $form = $('#post-form'); var fd = new For

因此,我使用
FormData
对象通过ajax向服务器发送文件和
POST
数据。 一方面,它很好用。但是当我有多个具有相同类名的表单时,不会发送
POST
数据。下面是第一个工作示例和发送,不发送数据。 它们基本相同,只是
FormData
对象使用
$form.get(0)
,第二个使用
$form
。第二次,我尝试了
$form.get()
$form[0]
,但没有成功。我是否使用了
FormData
错误

EXAMPLE 1
var $form = $('#post-form');
var fd = new FormData($form.get(0));
deferred = $.ajax({
    url: submit_url,
    type: submit_type,
    processData: false,
    contentType: false,
    dataType: 'json',
    data: fd,
    xhr: function() {
        var req = $.ajaxSettings.xhr();
        if (req && req.upload) {
            req.upload.addEventListener('progress', function(e) {
                if(e.lengthComputable) {    
                    var done = e.loaded || e.position, total = e.total || e.totalSize;
                    var percent = parseInt((done/total)*100) + '%';
                    //percentage of uploaded file
                }
            }, false);
        }
        return req;
    },
    beforeSend : function() {
    },
    success : function() {

    }
})


    EXAMPLE 2
    var $form = $('.form-base');
    var fd = new FormData($form);
    deferred = $.ajax({
        url: submit_url,
        type: submit_type,
        processData: false,
        contentType: false,
        dataType: 'json',
        data: fd,
        xhr: function() {
            var req = $.ajaxSettings.xhr();
            if (req && req.upload) {
                req.upload.addEventListener('progress', function(e) {
                    if(e.lengthComputable) {    
                        var done = e.loaded || e.position, total = e.total || e.totalSize;
                        var percent = parseInt((done/total)*100) + '%';
                        //percentage of uploaded file
                    }
                }, false);
            }
            return req;
        },
        beforeSend : function() {
        },
        success : function() {

        }
    })

它在ajax调用之前显示5,这是正确的。Hmmmm..我从其中一个表单中删除了一个文件输入,因此它减少到了四个,但现在它只传递第一个表单的第一个输入。我得做些调试。