我使用 Keith Wood 出色的 jQuery Datepicker。
日历链接到数据库。
从同一数据库中选择日期后,当日历显示为弹出窗口时(单击相关输入字段后),使用以下代码,这些日期会在日历中正确突出显示:
<input type="text" id="datepicker" name="datephp" value="<?php echo $allgluedatesok;?>">
<script>
$( "#datepicker" ).calendarsPicker({
inline:true,
multiSelect: 999,
monthsToShow: 2
});
</script>
为了获得更好的可用性,当然最好始终显示此日历。
在这种情况下,当我使用以下代码时,日期不会突出显示...
<div id="datepicker"></div>
<input type="hidden" id="hiddenFieldIDphp" name="datephp" value="<?php echo $allgluedatesok;?>">
<script>
$( "#datepicker" ).calendarsPicker({
inline:true,
multiSelect: 999,
monthsToShow: 2,
altField : '#hiddenFieldIDphp'
});
</script>
有人知道我在这里做错了什么吗?
最佳答案
当您链接 Keith Wood 的 datepick
时,情况似乎如此日历到 altField
这样,只有 datepick 对象更新 altField,而不是相反......
因此,当您将日期放入输入的 value
中时属性,日期选择日历不会触发任何事件,但当您选择内联日历中的日期时,输入会正确更新。
因此,解决方案是使用 PHP 的结果在 javascript 中手动设置 datepick 日历的日期:
<script>
$( "#datepicker" ).calendarsPicker({
inline:true,
multiSelect: 999,
monthsToShow: 2,
altField : '#hiddenFieldIDphp'
});
$( "#datepicker" ).calendarsPicker('setDate',<?php echo $commaseparatedDateStrings; ?>);
</script>
但请注意,PHP 字符串 $commaseparatedDateStrings
现在的类型必须是:'07/31/2014','08/01/2014','08/02/2014'
(带引号!)等等,以便它被正确解析为 javascript 的“setDate”函数参数...
PS:我留下了你的calendarsPicker()
在代码中,虽然当我下载 Keith Wood 的日期选择器时,扩展名为:datepick()
...
'setdate'
的行应该变成:
$("#datepicker").calendarsPicker('setDate',[<?php echo $commaseparatedDateStrings;?>]);
关于jquery - 在 jQuery 日历中突出显示数据库中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24926719/