Ajax表单发布不起作用 - 似乎永远不会提交

时间:2015-11-10 16:06:17

标签: javascript php jquery ajax forms

我多次以各种形式看到这个问题,但我尽可能多地查看这些问题,而且我无法弄清楚为什么我的代码无法工作。

<script>
$('document').ready(function(){


    $('datafixForm').submit(function( e ) {

        var formData = new FormData(this);

        $.ajax({
            type: 'POST',
            url: 'process.php',
            data: formData,
            contentType: false,
            cache: false,
            processData: false,
            mimeType: "multipart/form-data",
            success: function (data) {
                console.log('Form submitted!');
                console.log('Recieved' + data);
                alert('Form submitted!');
            },
            error: function (data) {
                console.log('We failed');
                console.log('Got' + data);
                alert('Didnt worky!');
            }
        });

        e.preventDefault();
        e.unbind();
    });
    $('datafixForm').submit(); // Submit the form
});
</script>

是我的提交脚本,但是它永远不会出现成功或错误控制台日志或警报。

我已经检查了chromes网络监视器,也没有显示发布请求。表单中有各种类型的数据,包括多个文件选择,但我不认为这应该是一个问题。

3 个答案:

答案 0 :(得分:3)

您的表单是否具有ID datafixForm?因为您的选择器应该是$('#datafixForm'),而不仅仅是$('datafixForm')

此外,我已经看到起始部分通常是$(document).ready(function)而不是$('document').ready(function)(文档通常不被称为字符串)但我不能100%确定这是否会导致问题。

编辑:评论中提到的$(文档)位并不是真正的问题,更多的是观察。显然两种方式都有效!

答案 1 :(得分:3)

确保您拥有正确的选择器。目前,datafixForm不是类,也不是id。

<强> ID

#datafixForm

<强>类

.datafixForm

答案 2 :(得分:1)

将您的e.preventDefault();移至提交活动的顶部。