为 zul datebox 设置默认日期

Set default date for zul datebox

我继承了一个用旧 zul 编写的遗留网站,必须为生日日期选择器添加新的 datebox 组件。

添加了一个约束条件来接受给定日期之前的日期,但是从一开始就触发错误警报框,因为日期选择器上的默认日期 presented/selected 是今天。

我不想使用解决方法,但恕我直言,这似乎是我在 zk 的现实中寻找的顶级功能:

我确实尝试过该解决方法(在论坛 post 之后,因为它有默认年份),但该解决方法对我不起作用。它确实执行

this.setValue(initialDate);

而且我看到该值已设置到日期框的 _pop/_value 和 _pop/_end 节点中,但在日期选择器框上没有可见差异,今天仍然是预selected,尽管它是灰色的 -所以没有效果。 尽管如此,当 I try it in a fiddle with version 6.5.8.1 存在的最旧引擎时,它确实可以工作,但不能在本地使用 v5.0.11。

在这个版本的 buglist 中没有提到日期框。试图调查一些可能会干扰的错误,但事实证明这只是我浪费时间的又一集。

在 5.0.11 沙盒中试过,但它不适用于该版本。我如何使用它的结构在链接的提琴手中被模仿。有关适用于此版本的解决方法的提示?

ZK 5.0.11 目前有点旧,因此它可能不会接受与更高版本完全相同的覆盖。如果我正确理解了这个问题,它可以归结为

1 - 在 Datebox 呈现之前设置一个值以在日历中打开 "initial date"。

我想说这是最简单的方法,因为您可以在页面呈现期间使用组合或数据绑定来设置日期框的值。这是一个使用数据绑定和 zscripts 的小示例,但相同的逻辑应该适用于 composer 的 setValue()。你提到过这对你本地的 5.0.11 不起作用。你能分享你为此使用的代码吗? Sample code here in fiddle 我可以在本地 5.0.11 上 运行 它,它设置弹出窗口打开前的日期。

2 - 设置初始日期(不影响所选值)但将成为打开日历的目标。

这不是日期框的默认 ZK 5 行为。如果您想要这种效果,则需要使用覆盖脚本对其进行自定义。在 ZK 5 中可以想到的最简单的方法是使用 datebox 弹出窗口的打开事件这里是它的外观示例(例如,在单个页面中的脚本标记中打包,将使用全局 js 文件来实现部署)example here