0

我写了一个 JQuery AJAX 提交脚本,它将通过 AJAX 提交一个带有类 ajax 的表单,并对其进行序列化等等等等 继承该脚本:

$("form.ajax").submit(function(){
   alert('a');
    var url = $(this).attr('action');
    if($(this).attr("element") != null)
    {
        var element = $(this).attr("element");
    }
    else if($(this).attr("element") == 'undefined')
    {
        var element = "render";
    }
    $("#"+element).html("<div id='loader'>Laden...<br /><img src=\"/site/templates/img/ajax-loader.gif\"/></div>");
    $.post(url, $(this).serialize(), function(data){

        $("#"+element).html(data);
    });
    return false;
}); 

好吧,当我提交表单时,任何带有 ajax 类的表单都会被提交两次,我可以在 Chrome 控制台的网络选项卡中看到这一点。

怎么了,我不明白(我把警报('a')放在那里检查它是否会弹出两次,但它没有)。

请帮我?

编辑:HTML,我之前发布了几次,但我们开始吧:

<form  class='ajax' element='make-payment' action='/statistieken/maak-betaling'  method='post'>
<input type='hidden' name='charity_id' value='1749'>
<li class='form-item'><label for='amount'>Bedrag:</label></li>
<li class='form-item'><input type='text' id='amount' name='amount' /></li>
<li class='form-item'><input type='submit' value='Betalen' /></li>
</form>

问候,哈维亚克

4

1 回答 1

1

尝试这样的事情

$("form.ajax").submit(function(){
   alert('a');
    var element;
    var url = $(this).attr('action');
    if($(this).attr("element") != null)
    {
        element = $(this).attr("element");
    }
    else if($(this).attr("element") == 'undefined')
    {
        element = "render";
    }
    $("#"+element).html("<div id='loader'>Laden...<br /><img     src=\"/site/templates/img/ajax-loader.gif\"/></div>");
    $.post(url, $(this).serialize(), function(data){

        $("#"+element).html(data);
    });
    return false;
}); 
于 2012-10-18T09:42:52.183 回答