仅当字段为空时,使用今天的日期填写Acrobat表单日期字段

Wel*_*son 5 javascript forms acrobat

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

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

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

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

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

o-o*_*o-o 10

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

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

保存表单并打开它,日期应该在那里弹出.

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

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