Jquery 不通过promot添加完整日历事件

Jquery 不通过promot添加完整日历事件,jquery,forms,fullcalendar,prompt,Jquery,Forms,Fullcalendar,Prompt,我想知道,当用户点击完整日历的黑色部分时,我如何允许用户填写表格而不是弹出的促销框 这基本上就是我到目前为止所做的。正如您所看到的,我让它将数据发送到一个正常工作的PHP页面,但我对提示框不满意,相反,我希望它是一个好的表单,他们也可以向其中添加注释 select: function(start, end, allDay) { var title = prompt('Event Title:'); if (t

我想知道,当用户点击完整日历的黑色部分时,我如何允许用户填写表格而不是弹出的促销框

这基本上就是我到目前为止所做的。正如您所看到的,我让它将数据发送到一个正常工作的PHP页面,但我对提示框不满意,相反,我希望它是一个好的表单,他们也可以向其中添加注释

select: function(start, end, allDay) {
                    var title = prompt('Event Title:');
                        if (title) {
                            calendar.fullCalendar('renderEvent',
                                {
                                    title: title,
                                    start: start,
                                    end: end,
                                    allDay: allDay,

                                },
                                true // make the event "stick"
                            );
                             year = new Date(start).getFullYear();
                             month = new Date(start).getMonth()+1;
                             month = ((month < 10) ? '0' : '') + month;

                             day = ((new Date(start).getDate() < 10) ? '0' : '') + new Date(start).getDate();

                             hours = ((new Date(start).getHours() < 10) ? '0' : '') + new Date(start).getHours();

                             min = ((new Date(start).getMinutes() < 10) ? '0' : '') + new Date(start).getMinutes();

                             sec = ((new Date(start).getSeconds() < 10) ? '0' : '') + new Date(start).getSeconds();

                            start = year + '-' + month + '-' + day +' '+hours+':'+min+':'+sec;

                            year = new Date(end).getFullYear();
                             month = new Date(end).getMonth()+1;
                             month = ((month < 10) ? '0' : '') + month;

                             day = ((new Date(end).getDate() < 10) ? '0' : '') + new Date(end).getDate();

                             hours = ((new Date(end).getHours() < 10) ? '0' : '') + new Date(end).getHours();

                             min = ((new Date(end).getMinutes() < 10) ? '0' : '') + new Date(end).getMinutes();

                             sec = ((new Date(end).getSeconds() < 10) ? '0' : '') + new Date(end).getSeconds();

                            end = year + '-' + month + '-' + day +' '+hours+':'+min+':'+sec;
                            //alert(start+' - '+end);

                            $.get("system/classes/core.php?task=calendar&q=addnew&userid="+userid+"&title="+title+"&start="+start+"&end="+end+"&allDay="+allDay, function(data) {
                                alert(title + ' was created for '+ start +' '+ end);
                            });
                        }
                            calendar.fullCalendar('unselect');
                },
选择:功能(开始、结束、全天){
var title=prompt('事件标题:');
如果(标题){
日历。完整日历('renderEvent',
{
标题:标题,,
开始:开始,
完:完,,
全天,
},
true//使事件“持续”
);
年份=新日期(开始)。getFullYear();
月=新日期(开始)。getMonth()+1;
月=((月<10)“'0':'')+月;
日期=((新日期(开始).getDate()<10)?“0”:“”)+新日期(开始).getDate();
小时=((新日期(开始).getHours()<10)?“0”:“”)+新日期(开始).getHours();
最小=((新日期(开始).getMinutes()<10)?“0”:“”)+新日期(开始).getMinutes();
秒=((新日期(开始).getSeconds()<10)?“0”:“”)+新日期(开始).getSeconds();
开始=年+月+日+小时+秒;
年份=新日期(结束)。getFullYear();
月=新日期(结束)。getMonth()+1;
月=((月<10)“'0':'')+月;
日期=((新日期(end).getDate()<10)?“0”:“”)+新日期(end.getDate();
小时=((新日期(结束).getHours()<10)?“0”:“”)+新日期(结束).getHours();
最小=((新日期(结束).getMinutes()<10)?“0”:“”)+新日期(结束).getMinutes();
秒=((新日期(结束).getSeconds()<10)?“0”:“”)+新日期(结束).getSeconds();
结束=年+月+日+小时+秒;
//警报(开始+'-'+结束);
$.get(“system/classes/core.php?task=calendar&q=addnew&userid=“+userid+”&title=“+title+”&start=“+start+”&end=“+end+”&allDay=“+allDay,函数(数据){
警报(标题+”是为“+开始+”+结束”创建的;
});
}
日历。完整日历(“取消选择”);
},

您需要首先创建一个带有标题的表单,以及您想要提交的所有其他内容。然后将其包装在一个隐藏的div中,就像这样…(简单示例)


同样,这是非常简单和一般,将不得不修改您的规格,以及风格,以您的喜好,但它应该工作。让我知道这是否有帮助

一个小问题是没有发送开始和结束时间,或者如果是全天事件,您需要通过start:start,end:end将其添加到post请求中,和allDay:allDay。您还必须解析日期。我还注意到,由于我的日历位于函数中,而不在文档就绪部分,因此它不允许使用$(“.submitForm”)。单击(函数(){});为了runWell duh。。。我不想表现得粗鲁,但正如我之前所说的,这个例子是为了帮助您入门,我没有意识到您需要我来解释jquery或fullcalendar的基本原理。我很清楚事件处理程序在jquery中是如何工作的,而且,除非您试图在事件发生时激活日历,否则它应该已经在$(document.ready()中了;你需要什么???你想让我给你整个功能代码,这样你就可以简单地复制和粘贴?还是你只是在寻求帮助???
<div class="popup" style="display:none; position:fixed; top:25%; left:25%; background-color:white;">
  <input class"title" type="text" size="26" />
  <a href="#" onclick="return false" class="submitFrom">submit</a>&emsp;
  <a href="#" onclick="return false" class="exit">cancel</a>
</div>
select: function(start, end, allDay){
  $(".popup").show();
  var start = Date.parse(start) / 1000;
  var end = Date.parse(end) / 1000;
  var allDay = allDay;
  var wipit = // create a session id such as a random number that can be cleared later to prevent double submissio

  $(".submitForm").click(function(){
  var title = $(".title").val();

  if(title){
    $.post("/*page name*/", {title: title, start:start, end:end, allDay:allDay}, function(){
      $(".title").val("")
      title = "";
      wipit = "";
      start = '';
      end = '';
      allDay = '';
      calendar.fullCalendar('unselect');
      calendar.fullCalendar('refetchEvents');
    });
  } else {
    // clear all information, unselect events, and alert that a title needs to be entered
  }
  $(".popup").hide();
  });

  $(".exit").click(function(){
    // clear all info, unselect events and...
    $(".popup").hide();
  });
}