0

このフォーラムのケースはどれも私を助けませんでした。引用されたすべてのオプションを次のように実行しました

$(this).unbind("click");
e.stopPropagation();
e.preventDefault();
return false;
$('form').unbind("submit");
onsubmit="return false;
etc...

私はそれらをどこでも試してみました。私の場合、彼らがうまくいったわけではありません。Plz、プロジェクトをできるだけ早く立ち上げる必要があるのを助けてください。

これが私のコードです:

<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>

ケース 1: #submit_btn をクリックして #confirm_btn をクリックすると、フォームが 1 回送信されます。

ケース 2: #submit_btn をクリックして #back_btn をクリックし、#submit_btn をクリックして #confirm_btn をクリックすると、フォームが 2 回送信されます。

ケース 3: アクションを 3 回実行すると、3 回送信されます

alert(); で確認しました。問題はここにあります:

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

#submit_btn で行ったクリックに応じて、submitForm() が何度も送信されます。ユーザーが送信する前に、確認のオプションを提供する必要があります。助けてください、私はそれを解決することができません.

4

2 に答える 2