我使用jQuery插件datepicker,我不希望用户能够在他的客户端上更改Today Date。所以我想知道如何将今天日期(不是所选日期!)设置为我的服务器日期。下面的代码即只设置默认的“SELECTED”日期值
defaultDate: myServerDate
...我也试过这个:
myDatepicker.datepicker('setDate', myServerDate);
两次尝试最终都会默认选择这些日期。但实际上并没有真正改变今天的日期。
干杯,腰带
答案 0 :(得分:1)
根据它的外观,如果没有黑客jquery.ui.datepicker.js
这是不可能的,以下是该文件的非缩小版本的摘录:
/* Generate the HTML for the current state of the date picker. */
_generateHTML: function(inst) {
var today = new Date();
today = this._daylightSavingAdjust(
new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
从上面可以看出today
是直接从JavaScript的Date对象计算的,所以没有办法将该值传递给...我猜主要是因为改变当天这是一个奇怪的请求
这有四个灵魂,其中3个不是很好,我把它们放在考虑顺序中,1个是最好的,4个是最差/最复杂的:
您可以参与并自行实施/报告setToday
的功能 - http://bugs.jqueryui.com/
您可以将_generateHTML函数复制到您自己的代码中,并使用RodrigoCouto所述的方法对其进行扩展: jQuery DatePicker Issue: Set current date
您可以破解jquery.ui.datepicker.js
以允许您定义代码var today = new Date();
的日期。您应该在应用程序中的任何注释中清楚地记下此覆盖,以便在需要升级到下一版本的jQuery UI时警告自己(以及其他开发人员)。
您可以构建一个js hack来与datepicker插件一起运行,并在每次显示日历时重写它的输出。即检测$('.ui-datepicker-today')
并删除该类,然后通过踩到兄弟姐妹并检查数据属性来重新计算应该放置的位置......这是最糟糕的方法,因为它不会影响任何datepicker的内部计算,并且会很复杂完成。