jQuery DatePicker 结合 fullcalendar 和 jQuery 对话框,mindate 不工作

jQuery DatePicker in combination with fullcalendar and jQuery dialog, mindate not working

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

我正在尝试将 jQuery 日期选择器的 mindate 设置为在 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 日期选择器上的 mindate 变为 16-05-2015

显然你不能用动态值设置你的 mindate,因为日期选择器只创建一次,你必须做的是在每次值更改时使用选项设置它,如下所示:

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

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

编辑:显然,我的日期选择器小部件没有将我的 $mindate 视为日期对象(这将我的想法偏移到 2020 年 11 月),所以我不得不将它变成这个以使其按照我想要的方式工作:

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