本论坛的所有案例都没有帮助我。我做了所有引用的选项,如
$(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表单提交一次时;
案例2: 当我单击#submit_btn并单击#back_btn并单击#submit_btn并单击#confirm_btn表单提交两次时;
案例3: 如果我做了3次动作,它会提交三次
等
我检查了alert(); 问题出在这里:
$("#confirm_btn").click(function(e){
$("#modal_content").hide();
//$(this).unbind("click");
submitForm('#payment','payment.php', true, true);
//e.stopPropagation();
});
submitForm()一次又一次地提交取决于我对#submit_btn所做的点击。我需要在提交之前为用户提供确认选项。请帮帮我,我无法解决它整天昼夜。
答案 0 :(得分:0)
我会做这样的事情,(i)取消对作为提交按钮的<a..>
元素的点击,以及(ii)将顶级的小部件动作与模态/ ok-绑定按钮实际上提交表单。
<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>
答案 1 :(得分:0)
最后我自己解决了这个问题。 我只是将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>