Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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/1/php/297.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 使用jQuery时,FomData始终为空_Javascript_Php_Jquery - Fatal编程技术网

Javascript 使用jQuery时,FomData始终为空

Javascript 使用jQuery时,FomData始终为空,javascript,php,jquery,Javascript,Php,Jquery,我有一个奇怪的问题,几个小时后我就想不出来了。。 我在JS中使用FormData对象来处理我的表单,我在其他页面中使用它,不会带来任何问题。 在这个特定的页面中,formData保持为空,不管我是手动声明还是以表单作为参数动态声明 这是我的JS $(document).ready(function() { function handleFormSubmit(event) { event.preventDefault(); var

我有一个奇怪的问题,几个小时后我就想不出来了。。 我在JS中使用FormData对象来处理我的表单,我在其他页面中使用它,不会带来任何问题。 在这个特定的页面中,formData保持为空,不管我是手动声明还是以表单作为参数动态声明

这是我的JS

$(document).ready(function() {

        function handleFormSubmit(event) {
            event.preventDefault();
            var ApiKey = '{{ Config::get('bts.apiKey') }}';
            var ApiUrl = '{{ Config::get('bts.api') }}';

            var url = ApiUrl + 'content/user/reminder';

            var form = this,
                formData = new FormData(form);

            var test = new FormData();
            test.append('test', 'fuck u');
            console.log(test);

            console.log(formData);
            if ($(form).data('loading') === true) {
                return;
            }

            $(form).data('loading', true);
            formData.append('key', ApiKey);

            $.ajax({
                url: url,
                type: 'post',
                data: formData,
                processData: false,
                contentType: false,
                enctype: 'multipart/form-data',
                error: function (data) {
                    swal('Error', 'The distant server cannot be reached', 'error')
                },
                success: function (data) {
                    if (data.success) {
                       console.log('ok');
                    } else {
                        console.log('nope')
                    }
                },
                complete: function () {
                    $(form).data('loading', false);
                    $(form).trigger('reset');
                },
                dataType: 'json'

            });

        }

        $('#complianceForm').on('submit', handleFormSubmit);
    });
我使用的是Laravel4,但我的prob和它之间并没有链接,因为它在另一个页面上使用几乎相同的代码

关于我的HTML,这只是基本的输入,我甚至没有文件类型的输入

以下是我的表格:

<form method="POST" action="/manage/234/content/87/3/access" accept-charset="UTF-8" id="complianceForm" enctype="multipart/form-data">


如果有人知道原因,任何帮助都将非常感谢^ ^

应该是这样的:

var form = this;
formData = new FormData($(form));
如果上述方法不起作用,您可以尝试使用此方法:

var formData = new FormData(document.getElementById('complianceForm'));

更新代码,然后重试

是否打开控制台并检查错误,看起来变量
ApiKey
apirl
是语法错误`?已检查,控制台上没有错误。
var form=document.getElementById('complianceForm')。。我对调试输出中的亵渎感到很高兴。得到了这个错误:TypeError:FormData的参数1。构造函数没有实现接口HTMLFormElement。当然
FormData
不接受jQuery对象吗?在jQuery事件处理程序中使用
this
将获得本机元素,这是OP想要的,这些代码行没有问题。OK,今天早上刚到办公室,然后再试一次。。如果我修改代码中的任何内容,都可以完美地工作。。。