如何防止对dayClick的重复?

时间:2017-12-21 07:05:53

标签: javascript jquery fullcalendar

在提问之前,我透露我是初学者。

我第一次使用fullCalendar。

当我点击日期时,我进行了活动注册。

if math.isnan(SESS.run(self.loss_total, feed_dict)): # if the loss is nan, cancel the training
                print("cancel")
                self.pull_parameter_server()
                break

此代码允许在事件注册中重复。

一旦某个事件在特定日期注册,我想阻止该事件在此后注册。

我见过与removeEvent相关的文档,但我不知道如何编写代码。

如果你能给我一个指导,我真的很感激。

1 个答案:

答案 0 :(得分:0)

这可以帮助你@won。

function IsDateHasEvent(date) {
    var allEvents = [];
    // add your calendar events into the array. 
    allEvents = $('#calendar').fullCalendar('clientEvents');
    var event = $.grep(allEvents, function (v) {
        return +v.start === +date;
    });

    return event.length > 0;
}

更新:

在将所选事件存储到对象之前添加函数。

dayClick: function (date, allDay, jsEvent, view) {

    if (!IsDateHasEvent(date)) {
         // No previous event on this date. 
        selectedDate = date;
        eventData = {
             title: title,
             start: start,
             stick : true,
             backgroundColor: '#fe4978',
             overlap: false,
        };

         $('#calendar').fullCalendar('renderEvent', eventData, true);
         // add new appointment code.
        //$("#divAddNewAppointment").dialog("open");
    }
    else {
        //$('<%= "#" + lblMessage.ClientID%>').html(" your error msg");
        $('#calendar').fullCalendar('unselect');
        $("#divMessage").dialog("open");
    }
}

并按如下方式更改您的代码。

[
    'attribute'=>'attribute name'
    'filter' =>  Html::activeDropDownList($searchModel, 'attribute name', array("ID1"=>"Name1","ID2"=>"Name2"),['class'=>'form-control','prompt' => 'Select Name']),
]