【问题标题】:Laravel How to reset modal ajax data values upon closing the modalLaravel如何在关闭模式时重置模式ajax数据值
【发布时间】:2021-05-10 18:18:16
【问题描述】:

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

我尝试关闭模态时做功能,模态数据将被清除。

下面是我的模态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();
});

【问题讨论】:

  • 您要重置 from 吗?那么你可以使用$('#myModalNewAppointment').trigger("reset");

标签: javascript jquery laravel


【解决方案1】:

当您成功调用 ajax 请求时,您已将数据附加到模型“时隙”分区中,因此很明显,隐藏模型上的数据仍将存在尝试清空时隙,请尝试以下代码,希望它对您有用并确保该方法在模型关闭时触发

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 2022-11-10
    • 2018-02-23
    • 2019-07-09
    • 1970-01-01
    相关资源
    最近更新 更多