Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在引导模式中获取新的完整日历事件_Javascript_Jquery_Fullcalendar_Bootstrap Modal - Fatal编程技术网

Javascript 在引导模式中获取新的完整日历事件

Javascript 在引导模式中获取新的完整日历事件,javascript,jquery,fullcalendar,bootstrap-modal,Javascript,Jquery,Fullcalendar,Bootstrap Modal,我正在使用引导模式显示事件详细信息。单击事件时,弹出窗口中将显示开始、结束和标题 这些事件是使用boostrap模式表单创建的 这是密码 $(function() { $('#calendar').fullCalendar({ header: { left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay' }, views

我正在使用引导模式显示事件详细信息。单击事件时,弹出窗口中将显示开始、结束和标题

这些事件是使用boostrap模式表单创建的

这是密码

$(function() {
  $('#calendar').fullCalendar({
    header: { 
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
     },
    views: {
      month: {
        titleFormat: 'YYYY, MM, DD'
      }
    },
    validRange: function(nowDate) {
      return {
        start: nowDate,
        end: nowDate.clone().add(1, 'months')
      };
    },
    navLinks: true,
    selectable: true,
    selectHelper: true,
    select: function(start, end) {
      startDate = moment(new Date(start)).format("MM-DD-YYYY");
      $('#createBookingModal .modal-header .modal-title span').text(startDate);
      $('#createBookingModal').modal('show');
    },
    editable: true,
    eventLimit: true, // allow "more" link when too many events
    events: function(start, end, timezone, callback){
      $.ajax({
        url: '/api/bookings',
        dataType: 'json',
        data: {
            start: start.unix(),
            end: end.unix(),
        },
        success: function(response){
          var events = [];
          $(response).each(function(){
            events.push({
                title: $(this).attr('title'),
                start: $(this).attr('start_time'),
                end: $(this).attr('end_time'),
            });
          });
          callback(events);
        }
      });
    },
    eventClick: function(event, jsEvent, view) {
      //Todo
      //Get event end date here
      console.log(event);
      startDate = moment(new Date(event.start)).format("MM-DD-YYYY");
      endDate = moment(new Date(event.end)).format("MM-DD-YYYY");

      $('#modalTitle').text(event.title);
      $('#modalBody .start span').text(startDate);
      $('#modalBody .end span').text(endDate);
      $('#fullCalModal').modal('show');
    },

    loading: function(bool) {
        $('#loading').toggle(bool);
    }
  });

  $('#submitButton').on('click', function(e){
      e.preventDefault();
      doSubmit();
  });

  function doSubmit(){
    //validate end date here
    endDate = new Date($('#bookingEndDate').val());
    if (! moment(endDate, 'MM/DD/YYYY', true).isValid() ){
      alert('Invalid Date');
    } else {
      eventData = {
        title: $('#bookingName').val(),
        start: new Date($('#createBookingModal .modal-header .modal-title span').text()),
        end: endDate
      };
      $.ajax({
          url: '/api/bookings/create',
          data: {
            title: eventData.title,
            start_time: eventData.start,
            end_time: eventData.end
          },
          success: function(response){
            console.log(response);
            // if ( response == 0 ){
            //   alert('Invalid Date');
            //   return false;
            // } else {
            //   return true;
            // }
          }
        });
        $('#createBookingModal form').get(0).reset();
        $("#createBookingModal").modal('hide');
        $("#calendar").fullCalendar('renderEvent', eventData, true);
        $('#calendar').fullCalendar('unselect');
    }
  }
});
HTML代码

<div class="card-body full-calendar">
                    <div id='calendar'></div>
                    <!-- Display Create Booking form in modal -->
                    <div id="createBookingModal" class="modal fade">
                        <div class="modal-dialog">
                            <div class="modal-content">
                                <div class="modal-header">
                                    <h4 class="modal-title">Add an Booking on: <span class="startDate"></span>></h4>
                                    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span> <span class="sr-only">close</span></button>
                                </div>
                                <div id="modalBody" class="modal-body">
                                    <form>
                                        <div class="form-group">
                                            <label for="bookingName">Booking Title</label>
                                            <input class="form-control" type="text" placeholder="Booking Name" id="bookingName">
                                        </div>

                                        <div class="form-group">
                                            <label for="bookingEndDate">End Date</label>
                                            <div class="input-group date" data-provide="datepicker">
                                                <input type="text" id="bookingEndDate" class="form-control" placeholder="mm/dd/yyyy">
                                                <div class="input-group-addon">
                                                    <span class="glyphicon glyphicon-calendar"></span>
                                                </div>
                                            </div>
                                        </div>

                                        <!--<div class="form-group">
                                            <textarea class="form-control" type="text" rows="4" placeholder="Booking Description" id= "eventDescription"></textarea>
                                        </div>-->
                                    </div>
                                    <div class="modal-footer">
                                        <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
                                        <button type="submit" class="btn btn-primary" id="submitButton">Save</button>
                                    </div>
                                </form>
                            </div>
                        </div>
                    </div>
                </div>
                <!-- Display Booking in modal -->
                <div id="fullCalModal" class="modal fade">
                    <div class="modal-dialog">
                        <div class="modal-content">
                            <div class="modal-header">
                                <h4 id="modalTitle" class="modal-title"></h4>
                                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span> <span class="sr-only">close</span></button>
                            </div>
                            <div id="modalBody" class="modal-body">
                                <p class="start">Start At: <span></span></p>
                                <p class="end">End At: <span></span></p>
                            </div>
                            <div class="modal-footer">
                                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                               <!-- <button class="btn btn-primary"><a id="eventUrl" target="_blank">Event Page</a></button>-->
                            </div>
                        </div>
                    </div>
                </div>

在以下位置添加预订:>
&时代;关闭
订票名称
结束日期
取消
拯救
×闭合

开始时间:

结束于:

接近 我有一个类似的问题(大约两年前!)必须使用submitHandler:function(){},如下所示

 submitHandler: function (form) {
                var dataRow = CreateDataSetup();
                $.ajax({
                    type: 'POST',
                    url: "/BookingTwo/SaveEvent",
                    data: dataRow,
                    success: function () {
                        $("#myform")[0].reset();
                        ClearPopupFormValues();
                        $('#popupEventForm').modal('hide');
                    },
                    statusCode: {
                        201: function (response) {
                            $('#calendar').fullCalendar('refetchEvents');
                            ClearPopupFormValues();
                            showAlert("Success Event Created.", "success", 4000)
                        },
                        500: function (response) {
                            $('#calendar').fullCalendar('refetchEvents');
                            ClearPopupFormValues();
                            showAlert("Internal Server Error - Logged with System Admins", "danger", 4000)
                            $('#popupEventForm').modal('hide');
                        },
                        400: function (response) {
                            $('#calendar').fullCalendar('refetchEvents');
                            ClearPopupFormValues();
                            showAlert("Duration Service Returned 0 - Event NOT Created.", "danger", 4000)
                            $('#popupEventForm').modal('hide');
                        },
                        401: function (response) {
                            $('#calendar').fullCalendar('refetchEvents');
                            ClearPopupFormValues();
                            showAlert("Warning - You do not have permission to delete this.", "danger", 4000)
                            $('#popupEventForm').modal('hide');
                        },
                        403: function (response) {
                            $('#calendar').fullCalendar('refetchEvents');
                            ClearPopupFormValues();
                            showAlert("Warning - Can't delete approved events.", "danger", 4000)
                        },
                        409: function (response) {
                            $('#calendar').fullCalendar('refetchEvents');
                            ClearPopupFormValues();
                            showAlert("There is already an event for the user for this date.", "danger", 4000)
                        }
                    }
                });
            }
还创建了一个数据设置函数-

    function CreateDataSetup() {
    console.log("Attempting to Setup POST Values...")
    var intEtad = parseInt($('#ETADType').val());
    var intEtadSub = parseInt($('#ETADSubType').val());

    var normStart = $('#LeaveStart').val();
    var normEnd = $('#LeaveFinish').val();

    var ahStart = $('#ADHOCLeaveStart').val();
    var ahEnd = $('#ADHOCLeaveFinish').val();

    var dataRow = {
        'Id': $('#id').val(),
        'Subject': $('#title').val(),
        'Description': $('#customdescription').val(),  
        'StartTime': normStart,
        'EndTime': normEnd,   
        'AHStartTime': ahStart,
        'AHEndTime': ahEnd,
        'SelectRole': $('#SelectRole').val(),
        'ETADType': intEtad,
        'ETADSubType': intEtadSub,
        'StaffID': $('#StaffID').val(),
        'EventStatus': $('#EventStatus').val(),
        'AllRoles': $('#AllRoles').is(':checked'),
        'AllDay': $('#AllDay').is(':checked'),      
        'AM': $('#AM').is(':checked'),
        'PM': $('#PM').is(':checked'),
        'ADHOC': $('#ADHOC').is(':checked'),

    };

    console.log("Setup Complete");
    return dataRow;
}

我用一个小的解决方法解决了这个问题,如果有人有更好的解决方案,请随时发布

eventClick: function(event, jsEvent, view) {
      if ( event.end == null ){
        event.end = event.start;
      }
      startDate = moment(new Date(event.start)).format("MM-DD-YYYY");
      endDate = moment(new Date(event.end)).format("MM-DD-YYYY");

      $('#modalTitle').text(event.title);
      $('#modalBody .start span').text(startDate);
      $('#modalBody .end span').text(endDate);
      $('#fullCalModal').modal('show');
    },

*@ADyson对此解决方案做出了巨大贡献,我希望在我们讨论后将此作为答案发布,他没有发布,因此我将发布。

感谢您的努力,我将检查并回复您。这里有很多代码不需要回答问题,但我只是从解决方案中提取了C&p,对此表示抱歉。您好SimonR,查看讨论,知道我解决了这个问题。