5

目标是让 Acrobat 表单在用户打开它时用今天的日期填充日期字段(“MeetingDate”)。如果用户按原样保存表单并在几天后打开它,旧日期应该仍然存在,而不是被当前日期替换。如果用户更改字段中的日期,则应保存该日期,并且不应在以后打开表单时替换该日期。

我有一个用于完成所有这些的日期字段(“MeetingDate”)的自定义计算脚本,但有一个问题:

if (event.value != "")
then
event.value = util.printd ("m/d/yyyy", new Date())
endif

这很好用,只是在输入脚本后,今天的日期会填入 MeetingDate 字段并保存该值。这是有道理的,但我希望当用户打开表单时,该字段自动填充今天的日期。相反,如果用户明天(2010 年 7 月 16 日)打开表单,字段中将显示 7/15/2010,因为那是我保存表单的日期。

我认为答案可能是将脚本作为文档 JavaScript(高级 | 文档处理 | 文档 JavaScript)输入,因为文档脚本在打开表单时执行,但我的所有尝试都会导致用户输入的日期在表格在几天后打开。感谢您的帮助!

4

4 回答 4

10

删除您的脚本并将其替换为以下文档 javascript:

var f = this.getField("wells_datefield");
if (!f.value) f.value = util.printd ("m/d/yyyy", new Date());

保存您的表格并打开它,日期应该会在那里弹出。

制作文档 javascript 时,请记住不要将其放在函数中。一种方法如下。在 Acrobat 菜单中:

  1. 高级->文档处理->文档 Javascripts...
  2. 在弹出的对话框中,输入脚本名称(例如“populate_date”)并单击添加...
  3. 在弹出的脚本对话框中:删除所有内容(“function populate_date(){}”)并粘贴到上面的脚本中。
  4. 单击确定,然后单击关闭。
  5. 保存表单,将其关闭并重新打开。
  6. 没有第6步!:>
于 2010-07-16T08:49:08.443 回答
1

希望您不介意我为英国用户(以及像我这样的新手)添加您的代码编辑

var f = this.getField("date");
if (!f.value) f.value = util.printd ("dd/mmm/yyyy", new Date());

此代码填充日期字段如下...

03/Jan/2013
于 2013-01-03T22:37:50.097 回答
1

@威尔斯安德森

您只需要删除 if 语句:

event.target.value = util.printd("m/d/yyyy", new Date());
于 2015-10-02T22:23:13.377 回答
0

不幸的是,当我添加 var f = this.getField("DatepPrinted"); if (!f.value) f.value = util.printd ("dd/mmmm/yyyy", new Date()); 到我在表单上的自定义按键,它给了我“0”而不是 2015 年 4 月 2 日 ..有人知道为什么吗?

于 2015-04-02T13:41:58.327 回答