【问题标题】:jQuery DatePicker in combination with fullcalendar and jQuery dialog, mindate not workingjQuery DatePicker 与 fullcalendar 和 jQuery 对话框相结合,注意不工作
【发布时间】:2015-05-18 08:29:43
【问题描述】:

我正在尝试将 jQuery datepicker 的 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);
                    }
            });

编辑:我通过这样做(代码 sn-p)让它工作:

 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 日(今天),这将使我的思维导图出现在 2015 年 18 月 5 日的对话屏幕顶部,并且同样会出现在我的隐藏字段中,但我的 jquery datepicker 上的头脑变成了 16-05-2015

【问题讨论】:

    标签: jquery jquery-ui datepicker fullcalendar


    【解决方案1】:

    显然你不能用动态值设置你的思维导图,因为日期选择器只创建一次,你要做的就是在每次值改变时使用选项来设置它:

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

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

    编辑:显然我的 datepicker 小部件没有将我的 $mindate 视为日期对象(它将我的 mindate 偏移到 2020 年 11 月),所以我必须将它变成它以使其按我想要的方式工作:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多