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