我的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
答案 0 :(得分:0)
显然你不能用动态值来设置你的思想,因为datepicker只创建一次,你需要做的就是每当值改变时使用选项设置它:
$("#enddate").datepicker('option', 'minDate', $mindate);
我想这在技术上解决了我的问题,但由于某种原因它在jquery datepicker中显示错误的日期,但我想这是一个不同的问题(在思想仍然可以选择之前2天)
编辑:看起来我的datepicker小部件没有看到我的$ mindate作为日期对象(它使我的思想偏向2020年11月)所以我不得不把它变成这个让它按照我想要的方式工作: $("#enddate").datepicker('option', 'minDate', new Date($mindate));