当前位置: 首页 > 知识库问答 >
问题:

引导模式在使用ajax调用提交表单后未关闭?

帅锦
2023-03-14

我有一个模态,它有一个形式。我试图提交表单而不使用ajax刷新页面,我成功地提交了表单,但我无法隐藏模态。

带表单的引导模式:

<div class="modal fade" id="exampleModalCenter" role="dialog">
    <div class="modal-dialog modal-dialog-centered">    
    <!-- Modal content-->
    <div class="modal-content">
     <form >
        <div class="modal-body">  
         <ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
            <li class="nav-item">
            <a class="nav-link active" id="pills-home-tab" data-toggle="pill" 
            href="#pills-home" role="tab" aria-controls="pills-home" aria- 
            selected="true">CreditCard/DebitCard</a>
            </li>
            <li class="nav-item">
            <a class="nav-link" id="pills-profile-tab" data-toggle="pill" 
            href="#pills-profile" role="tab" aria-controls="pills-profile" 
            aria-selected="false">Paypal</a>
            </li>
            <li class="nav-item">
            <a class="nav-link" id="pills-contact-tab" data-toggle="pill" 
            href="#pills-contact" role="tab" aria-controls="pills-contact" 
            aria-selected="false">Quickpay</a>
            </li>
        </ul>  
       <div class='pt-1 pb-1 pl-2 text-danger text-center' id="payment- 
       error">Please enter all  card details!</div>
       <div class="tab-content" id="pills-tabContent">
        <div class="tab-pane fade show active" id="pills-home" 
         role="tabpanel" aria-labelledby="pills-home-tab">
        <div class="form-group">
            <label for="amount">Amount</label>
                <div class="input-group">
                 <input type="number" name="amount" id="modal_amount" 
                 class="form-control" placeholder="Enter Donation amount" 
                 autocomplete="amount" value="">
                 <div class="input-group-append"><span class="input-group- 
                 text"><i class="fa fa-money"></i></span></div>

                </div>
            </div>
            <div class="form-group">
             <label for="name">CardHolder Name</label>
                <div class="input-group">
                <input type="text" name="name" class="form-control" 
                placeholder="Enter Name" autocomplete="name" id="modal_name" 
                value="">
                <div class="input-group-append"><span class="input-group- 
                text"><i class="fa fa-user"></i></span></div>

                </div>
            </div>
            <div class="form-group">
             <label for="cardnumber">Card Number</label>
                <div class="input-group">
                <input type="tel" name="cardnumber" class="form-control" 
                 placeholder="Valid Card Number" autocomplete="cc-number" 
                 value="" id="modal_number">
                 <div class="input-group-append"><span class="input-group- 
                  text"><i class="fa fa-credit-card"></i></span></div>

                 </div>
            </div>
            <div class="row">
              <div class="col-7">
                <div class="form-group">
                  <label for="expdate">Expiry Date</label>
                    <div class="input-group">
                    <input type="tel" name="expdate" class="form-control" 
                     placeholder="MM/YY" autocomplete="exp-date" value="" 
                     id="modal_expdate">
                    <div class="input-group-append"><span class="input-group- 
                     text"><i class="fa fa-calendar"></i></span></div>

                    </div>
                </div>
          </div>
          <div class="col-5">
            <div class="form-group">
                <label for="cvv">CVV</label>
                <div class="input-group">
                <input type="password" name="cvv" class="form-control" 
                 placeholder="Enter CVV" autocomplete="cvv" maxlength="3" 
                 value="" id="modal_cvv">
                <div class="input-group-append"><span class="input-group- 
                text"><i class="fa fa-key" ></i></span></div>

                    </div>
                </div>
            </div>
        </div>
     </div>
    <div class="tab-pane fade" id="pills-profile" role="tabpanel" aria- 
    labelledby="pills-profile-tab">...</div>
    <div class="tab-pane fade" id="pills-contact" role="tabpanel" aria- 
    labelledby="pills-contact-tab">...</div>
    </div>        

    <input type="hidden" name="fundid" id="fundid">                      
   </div>
   <div class="modal-footer">
   <button type="submit" class="form-control btn btn-primary btn-small"  
   name="fundraiser" id="fundraiser">Submit</button>
   </div>
 </form>
 </div>
 </div>      
</div>

以上模式的Ajax代码:

$('document').ready(function(){
    $('#event-error').hide();
    $('.event-alert').hide();
    $('#payment-error').hide();
    $('.payment-alert').hide();
    // fundraiser modal form submission
    $('#fundraiser').click(function(){
    var cardname = $('#modal_name').val();
    var cardnumber = $('#modal_number').val();
    var amount = $('#modal_amount').val();
    var expdate = $('#modal_expdate').val();
    var cvv = $('#modal_cvv').val();
    var fundid = $('#fundid').val();
    var payment_data = 'card-name=' + cardname + '&card-number=' + cardnumber 
    + '&amount=' + amount + '&expdate=' + expdate + "&cvv=" + cvv  + 
    '&fundid=' + fundid;
    if( cardname == "" || cardnumber == "" || amount == "" || expdate == "" 
    || amount == "")
        {
            $('#payment-error').show();
            return false;
        }
        else{

            $.ajax({
                type: "POST",
                url: "fund_data.php",
                data: payment_data,
                success: function(){
                    $('.payment-alert').delay(1000).show();
                }
            });
            $('#modal_name').val("");
            $('#modal_number').val("");
            $('#modal_amount').val("");
            $('#modal_expdate').val("");
            $('#modal_cvv').val("");
            return false;
        }
    });

在弹出Modal后,我在表单中提供了一个随机的支付卡详细信息,在我提交表单后,使用ajax post调用将详细信息发布到db中,并显示支付成功的警报。但是,我无法关闭模式。请解决这个问题??

共有2个答案

冯卜鹰
2023-03-14

您可以使用关闭Bootstap模式

$(selector).modal('hide');

隐藏所有情态动词

$('.modal').modal('hide');

因此,如果您希望仅在AJAX调用成功时关闭模式,那么您可以这样做:

$.ajax({
    type: "POST",
    url: "fund_data.php",
    data: payment_data,
    success: function(){
        $('.payment-alert').delay(1000).show();
        $('.modal').modal('hide');
    }
});
邴和雅
2023-03-14

您必须调用hid()函数才能关闭模态。

$.ajax({
    type: "POST",
    url: "fund_data.php",
    data: payment_data,
    success: function(){
        $('.payment-alert').delay(1000).show();
        $('#exampleModalCenter').modal('hide'); // here you hide the modal
    }
});

简单地设置. val("");不会隐藏它。

 类似资料:
  • 问题内容: 我想在点击提交按钮时验证WordPress帖子上的用户条目,显示错误消息是否存在问题,如果一切正常,则提交表单。我有一个PHP函数进行检查,如果输入的数据还可以,则返回,否则返回一些错误代码。以下JavaScript发出AJAX请求,并应在成功检查后继续提交表单,但不会: 该代码是根据WPSE问题改编的,该问题最初对我不起作用,因为未提交表单。我发现,如果绑定到的jQuery函数返回t

  • 问题内容: 我正在尝试使用jquery将值提交到数据库。我是ajax的新手,但是我必须使用ajax。 到目前为止,这是我已经完成的PHP代码 我的html代码是 这是我使用jQuery的ajax 我不知道我在做什么错。任何帮助将不胜感激 问题答案: 与其干扰表单的Submit事件,不如点击事件。要对现有设置进行最小的更改,只需将点击处理程序添加到表单提交按钮。处理程序中的第一件事是调用e.prev

  • 我想把数据到数据库通过引导模式与ajax。但提交数据后,模态按钮不会自动关闭。我怎样才能解决这个问题。 下面是引导模式的代码 这是ajax代码

  • 问题内容: 我正在尝试使用AJAX技术添加评论,但出现错误: 这是我的代码:View: 控制器: AJAX: 最后一条路线: 任何人都知道问题出在哪里,为什么我不能提交表格? 问题答案: 您没有发布任何数据, 您得到的错误是DB中的列不能为空。 尝试将您的ajax调用更改为此: 改变这个 至 并获取消息和帖子ID: 完成ajax块: 最后,在隐藏字段中添加一个ID: 从Laravel控制器发送回数

  • 问题内容: 我正在尝试在wordpress中获取ajax请求的结果,但是在javascript的警报框中却获得了“ 0”的结果,因此该表单如下所示: javascript看起来像这样: 和PHP: 有谁知道上面的代码是否正确,我也尝试过$ _REQUEST [‘name’],它不起作用。 非常感谢 问题答案: 尝试这样的操作,您没有在PHP 函数中添加期望的参数,因此必须将其添加到jQuery a

  • 我有一个页面,在3列中显示6个引导卡。每个引导卡显示图像、名称、描述和页脚按钮。当用户单击引导卡页脚按钮时,将打开一个引导模式,该模式按ID显示Sql行数据并进入该引导模式,该模式有2个输入和一个textarea表单,如下所述: 为了打开带有尊重ID的Modal,我在按钮卡代码中插入了一个PHP代码,如下所示: 其中