为 zul datebox 设置默认日期
Set default date for zul datebox
我继承了一个用旧 zul 编写的遗留网站,必须为生日日期选择器添加新的 datebox
组件。
添加了一个约束条件来接受给定日期之前的日期,但是从一开始就触发错误警报框,因为日期选择器上的默认日期 presented/selected 是今天。
我不想使用解决方法,但恕我直言,这似乎是我在 zk 的现实中寻找的顶级功能:
- main showcase for zul 确实包含一个生日日期框,但是非常蹩脚,因为它不包含任何年龄限制。
- 有 is zk fiddler to show how the before constrain works,但这只是证明了我的观点,如果没有明确的设置方法,它至少 select 不是默认日期的第一个正确日期。
- 有 forum post that proposes a workaround to set the default year,所以如果没有解决方法,Zk 很可能无法做到这一点。
- 有一个开放的ZK Jira issue from 2017 that addresses somewhat this issue,建议的解决方案与上面提到的解决方法几乎相同 - 所以希望有点破灭,必须继续解决方法。
我确实尝试过该解决方法(在论坛 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
我继承了一个用旧 zul 编写的遗留网站,必须为生日日期选择器添加新的 datebox
组件。
添加了一个约束条件来接受给定日期之前的日期,但是从一开始就触发错误警报框,因为日期选择器上的默认日期 presented/selected 是今天。
我不想使用解决方法,但恕我直言,这似乎是我在 zk 的现实中寻找的顶级功能:
- main showcase for zul 确实包含一个生日日期框,但是非常蹩脚,因为它不包含任何年龄限制。
- 有 is zk fiddler to show how the before constrain works,但这只是证明了我的观点,如果没有明确的设置方法,它至少 select 不是默认日期的第一个正确日期。
- 有 forum post that proposes a workaround to set the default year,所以如果没有解决方法,Zk 很可能无法做到这一点。
- 有一个开放的ZK Jira issue from 2017 that addresses somewhat this issue,建议的解决方案与上面提到的解决方法几乎相同 - 所以希望有点破灭,必须继续解决方法。
我确实尝试过该解决方法(在论坛 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