Jquery Ajax提交表单两次

Jquery Ajax提交表单两次,jquery,ajax,forms,submit,Jquery,Ajax,Forms,Submit,在这个论坛上没有一个案例对我有帮助。我做了所有被引用的选择,比如 $(this).unbind("click"); e.stopPropagation(); e.preventDefault(); return false; $('form').unbind("submit"); onsubmit="return false; etc... 我到处都试过了。他们都没有为我的案子工作。请帮帮我,我只是需要尽快启动这个项目 这是我的密码: <form class="form-horizont

在这个论坛上没有一个案例对我有帮助。我做了所有被引用的选择,比如

$(this).unbind("click");
e.stopPropagation();
e.preventDefault();
return false;
$('form').unbind("submit");
onsubmit="return false;
etc...
我到处都试过了。他们都没有为我的案子工作。请帮帮我,我只是需要尽快启动这个项目

这是我的密码:

<form class="form-horizontal" method="post" id="payment">
  <fieldset id="pincode_fieldset" <?php echo ($user->pincode=="" ||      $user->pincode_error==3)? "disabled":""; ?>>
    <input type="text" class="form-control" id="username" name="username">
    <input type="text" class="form-control" id="password" name="password">
    <input type="text" class="form-control" id="deposit" name="deposit">
    <a type="submit" id="submit_btn" class="btn btn-primary btn-small pull-right">Pay</a>
  </fieldset>
</form>


<script>

//payment confirmation;
function confirmPayment(){

$("#username2").text($("#username").val());
$("#deposit2").text("€"+$("#deposit").val());
$('#confirmModal').modal('show');

$("#confirm_btn").click(function(e){
    $("#modal_content").hide();
    //$(this).unbind("click");
    submitForm('#payment','payment.php', true, true);
    //e.stopPropagation();  
});

$("#back_btn").click(function(){
    $('#confirmModal').modal('hide');
    $(document).ready(function(){
        $('#modal_content').show('slow');
    });
});
   //$('form').unbind("submit");
   return false;
}

$("#payment").submit(function(){
    confirmPayment(); 
    return false;
});

</script>

submitForm()是否一次又一次地提交取决于我在#submit_btn上的单击。我需要给用户在提交前确认的选项。请帮助我,我无法解决这个问题。我会这样做,(I)取消对用作提交按钮的
元素的单击,以及(ii)在顶层绑定小部件操作,使用模态/确定按钮实际提交表单

<form class="form-horizontal" method="post" id="payment" action="payment.php">
    ...
    <a type="submit" id="submit_btn" class="btn btn-primary btn-small pull-right">Pay</a>
    ...
</form>

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

    $("#confirm_btn").click(function (e) {
        $('#payment').submit();
        $("#confirmModal").hide();
    });

    $("#back_btn").click(function () {
        $('#confirmModal').modal('hide');
    });

    function displayModal() {
        $("#username2").text($("#username").val());
        $("#deposit2").text("€" + $("#deposit").val());
        $('#confirmModal').modal('show');
    }

    // clicking on the submit button shouldn't submit, but just 
    // display the modal. 
    $("#submit_btn").click(function () {
        displayModal();
        return false; 
    });

});
</script>

...
支付
...
$(文档).ready(函数(){
$(“#确认”)。单击(功能(e){
$(“#付款”)。提交();
$(“#confirmModal”).hide();
});
$(“#返回”_btn”)。单击(函数(){
$('confirmModal').modal('hide');
});
函数displaymodel(){
$(“#username2”).text($(“#username”).val());
$(“#存款2”).text(€“+$(“#存款”).val());
$('confirmModal').modal('show');
}
//单击“提交”按钮不应提交,只需
//显示模式。
$(“#提交”_btn”)。单击(函数(){
displaymodel();
返回false;
});
});

上次我自己解决了这个问题。 我刚刚将confirmPayment()一分为二,它成功了:

<script>

//payment confirmation;
 function confirmPayment()
{
     $("#username2").text($("#username").val());
     $("#deposit2").text("€"+$("#deposit").val());
     $('#confirmModal').modal('show');
 }

 $(document).ready(function(){
     $("#confirm_btn").click(function(e){
         $("#modal_content").hide();
         submitForm('#payment','payment.php', true, true);
     });

     $("#back_btn").click(function(){
        $('#confirmModal').modal('hide');
        $(document).ready(function(){
            $('#modal_content').show('slow');
        });
    });

   return false;
 });

 $("#payment").submit(function(){
     confirmPayment(); 
     return false;
 });

 </script>

//付款确认;
函数confirmPayment()
{
$(“#username2”).text($(“#username”).val());
$(“#存款2”).text(€“+$(“#存款”).val());
$('confirmModal').modal('show');
}
$(文档).ready(函数(){
$(“#确认”)。单击(功能(e){
$(“#模式内容”).hide();
submitForm(“#payment”,“payment.php”,true,true);
});
$(“#back_btn”)。单击(函数(){
$('confirmModal').modal('hide');
$(文档).ready(函数(){
$('modal#u content')。show('slow');
});
});
返回false;
});
$(“#付款”)。提交(函数(){
确认付款();
返回false;
});

您真的需要确认用户想要做他们刚刚做的事情吗?这不是很烦人吗?是的,因为用户名必须确定。否则,转账的款项将无法退还。如果用户名上有输入错误,并且该用户名存在,则该款项将被错误地转账到该用户名。因此,我需要用户在转账前再次确认。您确定他们不确定,因为他们刚刚输入了大量数据并单击了提交?(我可以继续,但它很快就会变得非常烦人。)我认为您的基本问题是,
confirmPayment()
函数同时确认、提交和设置事件处理程序(由于缩进不可靠,有点难以判断发生了什么)。您可以去掉所有模式,只需说
$(“#支付”)。提交(函数(){return confirm(“…”;});
。请仔细检查您没有两次引用任何jquery或ajax库。您是对的。但我使用ajax。submitForm(“#payment”,“payment.php”,true,true);是ajax提交。无论如何,感谢您的帮助。我解决了上面给出的问题。
<script>

//payment confirmation;
 function confirmPayment()
{
     $("#username2").text($("#username").val());
     $("#deposit2").text("€"+$("#deposit").val());
     $('#confirmModal').modal('show');
 }

 $(document).ready(function(){
     $("#confirm_btn").click(function(e){
         $("#modal_content").hide();
         submitForm('#payment','payment.php', true, true);
     });

     $("#back_btn").click(function(){
        $('#confirmModal').modal('hide');
        $(document).ready(function(){
            $('#modal_content').show('slow');
        });
    });

   return false;
 });

 $("#payment").submit(function(){
     confirmPayment(); 
     return false;
 });

 </script>