Ajax表单不会发送我的数据

时间:2013-10-14 08:37:38

标签: jquery ajax

$(document).ready(function() {

$("#msform").submit(function(e){
    e.preventDefault();

    $("#editjeeinde").hide();
    $("#loading").show();

    $('#msform').ajaxForm(function() {
        $("#loading").hide();
        $("#done").show();
    });
});
});

它只是不将我的表单提交到php页面,如我的html表单所示:

<form id="msform" action="sent.php" method="post" enctype="multipart/form-data">

我的提交按钮以及表格发送后显示的加载div和完成div:

    <input type="submit" name="submit" class="submit action-button" value="Verzenden" id="submit" />
    </div>
    <div id="loading">
    <p>Bezig met verzenden...<br /><img src="loader.gif" /></p>
    </div>
    <div id="done">
    <p>Uw aanvraag is succesvol ingediend. Wij zullen deze binnen 1-2 weken verwerken en u hiervan op de hoogte brengen.</p>
    </div>

它一直在加载......任何人都能看到问题吗?

2 个答案:

答案 0 :(得分:1)

我猜你正在使用jQuery表单插件。根据{{​​3}},此代码:

$('#msform').ajaxForm(function() {
    // your options
});
例如,

应该放在submit函数的外部。另外,您不需要在代码中提交表单。你应该在提交函数中使用这个函数:     $(this).ajaxSubmit();

所以最后它应该是这样的:

$(document).ready(function() {
    $('#msform').ajaxForm({
        // Callback called before the form loading.
        beforeSubmit: function() {
            $("#editjeeinde").hide();
            $("#loading").show();
        },
        // Success callback of your form.
        success: function() {
            $("#loading").hide();
            $("#done").show();
        }
    });

    // Change your submit function to load asynchronously your content.
    $('#myFormId').submit(function() {
        $(this).ajaxSubmit();
        return false;
    });
}

答案 1 :(得分:0)

我自己找到了答案。您无法将.submit功能与Form插件一起使用。所以我把它改成了:

$("#msform").on("submit",function(e){
    e.preventDefault();

    $("#editjeeinde").hide();
    $("#loading").show();

    $("#msform").ajaxSubmit(function() {
        $("#loading").hide();
        $("#done").show();
    });
});

它就像一个魅力。