jQuery DatePicker与fullcalendar和jQuery对话结合使用,注意不起作用

时间:2015-05-18 08:29:44

标签: jquery jquery-ui datepicker fullcalendar

我的html代码中有一个表单,使用jQuery对话框制作一个弹出窗口,在这个表单中我有一个'enddate'的输入字段,它使用jQuery DatePicker输入数据。

我正在尝试将jQuery datepicker的注释设置为在fullcalendar上单击的日期(已点击日期的隐藏字段已正确填写但由于某种原因,datepicker mindate无法正常工作)

表格:

<form id="logform" enctype="multipart/form-data" action="calendar"  method="post"> 
                        <select name='logoption' id='logoption' form="logform">  
                            <option value="0"> Select logtype </option>
                            <?php
                            //SQL in laravel style to get log types from database
                            $logtypes = DB::table('time_log_types')->get();

                            foreach ($logtypes as $logtype) {
                                echo ' <option value="' . $logtype->id . '">' . $logtype->logtype . '</option>';
                            }
                            ?>
                        </select>

                        <div id="illness" style="display:none">
                            <p>End date: <input type="text" name="enddate" id="enddate"></p> <!-- this one is not getting the date as mindate -->
                            <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
                            <p>Doctor's note: <input type="file" name="doctorsnote" id="doctorsnote"/></p>                                            
                        </div>

                        <input type="button" value="submit" id="submitbutton" style="display:none" onclick="submit()" />
                        <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
                        <input type='hidden' name='logdate' id='logdate'> <!-- this one gets the proper date -->
                    </form>

使用Javascript:

$('#calendar').fullCalendar({
            //calendar options here              

                    dayClick: function(date, jsEvent, view) {
                    //to get date use date.format());
                    //POPUPCODE START

                    $('#logdate').val(date.format());
                    $( "#enddate" ).datepicker({
                          mindate: new Date(date.format()) //this piece of code isn't working
                          ,dateFormat: 'dd-mm-yy'
                        });                    
                    $("#somediv").load().dialog(
                    {   //Set options for the dialog here
                    modal: true,
                            autoResize:true,
                            maxWidth: 600,
                            minWidth: 500
                    });
                            //POPUPCODE END
                            var myCalendar = $('#calendar');
                            myCalendar.fullCalendar();
                            var myEvent = {
                            title: "Work 7.6h",
                                    allDay: true,
                                    start: date,
                                    end: date
                    };
                            myCalendar.fullCalendar('renderEvent', myEvent, true);
                    },
                    eventClick: function(calEvent, jsEvent, view) {
                    var myCalendar = $('#calendar');
                            myCalendar.fullCalendar('removeEvents', calEvent._id);
                    }
            });

编辑:我通过这样做(代码片段)来实现它:

 dayClick: function(date, jsEvent, view) {
                    //to get date use date.format());
                    //POPUPCODE START
                    $mindate = date.format('DD-MM-YY');
                    alert($mindate);
                    $('#logdate').val(date.format());
                    $( "#enddate" ).datepicker({
                           dateFormat: 'dd-mm-yy'
                        });  
                    $("#enddate").datepicker('option', 'minDate', $mindate);

但是现在我的思绪已经过了2天,让我说我点击了5月18日(今天),这会让我在我的对话界面18-05-2015上面看到同样会出现在我隐藏的领域,但我的jquery datepicker的注意力变为16-05-2015

1 个答案:

答案 0 :(得分:0)

显然你不能用动态值来设置你的思想,因为datepicker只创建一次,你需要做的就是每当值改变时使用选项设置它:

$("#enddate").datepicker('option', 'minDate', $mindate);

我想这在技术上解决了我的问题,但由于某种原因它在jquery datepicker中显示错误的日期,但我想这是一个不同的问题(在思想仍然可以选择之前2天)

编辑:看起来我的datepicker小部件没有看到我的$ mindate作为日期对象(它使我的思想偏向2020年11月)所以我不得不把它变成这个让它按照我想要的方式工作:

 $("#enddate").datepicker('option', 'minDate', new Date($mindate));