繁体   English   中英

Laravel 如何在关闭模态时重置模态 ajax 数据值

[英]Laravel How to reset modal ajax data values upon closing the modal

我目前正在通过选择日期、开始时间和结束时间来填充用户对可用约会的搜索。 我正在尝试将它们填充到当前正在工作的模态中。 但是我意识到,每当我关闭模态并搜索新的时间段时,模态上填充的先前数据仍然存在。

我试过在关闭模态时做function,模态数据会被清除。

以下是我的模态 html 代码:

<div class="modal fade" id="myModalNewAppointment">
    <div class="modal-dialog">
        <div class="modal-content">
            <!-- Modal Header -->
            <div class="modal-header">
                <h4 class="modal-title">Select Appointment</h4>
            </div>
            <!-- Modal body -->
            <div class="modal-body">
                {{-- <form id="test" action="" method="post"> --}}
                    <div class="form-group">
                        <label for="modal">Select a Timeslot</label>
                        <div class="spacer"></div>
                        <div class="timeslots-section">
                            <div class="timeslots text-center">
                                
                            </div> <!-- end timeslots -->
                        </div>
                    </div>
                {{-- </form> --}}
            </div>

            <!-- Modal footer -->
            <div class="modal-footer">
                <button type="button" class="btn btn-primary" id="new_appt_cfm_btn" data-loading-text="<i class='fa fa-spinner fa-spin'></i> saving..">Confirm</button>
                <button type="button" class="btn btn-outline-primary" id="close_btn" data-dismiss="modal">Close</button>
            </div>

        </div>
    </div>
</div>

下面是我的 ajax 检索时隙的方法:

 $("#find_appointment_btn").click(function(event){
            event.preventDefault();
            let select_date = $('#select_date').val();
            let start_time = $('#start_time').val();
            let end_time = $('#end_time').val();

            let data = { select_date: select_date, start_time: start_time, end_time: end_time };
            $.ajax({
                type:"POST",
                url: "{{ route('assistant.newappts.get') }}",
                headers: { 
                    'X-CSRF-TOKEN': '{{ csrf_token() }}',  
                    'Content-Type': 'application/json'
                },
                data: JSON.stringify(data),
                dataType: "json",
                success:function(data){
                    console.log(data);
                    if(data == ""){
                        alert("Clinic is close!");
                        return;
                    }
                    else if(data != ""){
                        $('#myModalNewAppointment').modal({backdrop: 'static', keyboard: false});
                        data.forEach(function(dt) {
                            // do something with `item`
                            // $(".timeslots").append(dt);
                            $('.timeslots').append('<input type="checkbox" class="timeslotchk" name="timeslot" value="'+ dt +'"/>' + dt );  
                        }); 
                    }                      
                },
                error: function(error) {                   
                    console.log(error);
                }
            });
        });

以下是我尝试重置模式中填充的数据的方法:

$("#myModalNewAppointment").on("hidden.bs.modal", function () {
    $('#myModalNewAppointment').reset();
});

当您成功调用 ajax 请求时,您已将数据附加到 model “时隙”划分中,因此很明显,隐藏的 Z20F35E630DAF44DBFA4C3F68F5399D8 中的数据仍将存在,请尝试使用以下代码,以确保清空代码该方法在 model 关闭时触发

$("#myModalNewAppointment").on("hidden.bs.modal", function () { $('#myModalNewAppointment').find(".timeslots").empty(); });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM