FullCalendar + FancyBox2:传递和设置输入值

时间:2013-04-04 11:26:36

标签: javascript jquery fullcalendar fancybox-2 cakephp-2.3

我需要一些帮助。我正在尝试构建FullCalendar和FancyBox2组合。当用户点击一天时,我有这样的功能:

dayClick: function(date, allDay, jsEvent, view) {
                var url = '/reservations/add';
                var data = url;
                var dayClickDate = $.fullCalendar.formatDate(date, 'dd/MM/yyyy');

                $.fancybox({
                    'hideOnContentClick': false, //option for v1.3.4 (outdated)
                    'type': 'iframe',
                    'href': data,
                    'width': 500,
                    'height': 100,
                    'transitionIn': 'none', //option for v1.3.4 (outdated)
                    'transitionOut': 'none', //option for v1.3.4 (outdated)

                    afterLoad: function() {
                        $("#resStartDate").val(dayClickDate);
                    },
                    afterClose: function() {
                        $('#calendar').fullCalendar('refetchEvents');
                    }
                });
            },

FancyBox在iframe中打开一个页面,用户可以在其中进行新的预订。它应该将单击的日期日期设置为输入值。上面的代码不起作用。

有人知道如何让这个工作吗?谢谢。

1 个答案:

答案 0 :(得分:1)

我想这取决于选择器#resStartDate#calendar的位置:页面或iframe内的已打开页面?

如果它们位于打开的页面内(我假设它们是),那么在传递任何值之前,你应该首先在iframe内找到它们,所以试试

afterLoad: function() {
   $('.fancybox-iframe').contents().find("#resStartDate").val(dayClickDate);
},
afterClose: function() {
   $('.fancybox-iframe').contents().find('#calendar').fullCalendar('refetchEvents');
}

注意:使用iframe?始终考虑Same Origin Policy