2010-07-16 91 views
5

目标是当用户打开日期字段(“MeetingDate”)时用Acrobat表单填写日期字段(“MeetingDate”)。如果用户保存表单并在几天后打开它,则旧日期应该仍然存在,而不是由当前日期替换。如果用户在字段中更改日期,则应保存该日期,并且稍后打开表单时不应替换该日期。仅当字段为空时才填写Acrobat表单日期字段

我有一个日期字段,做了这一切(“MeetingDate”)的自定义计算脚本,但有一个问题:

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

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

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

+0

关于你的脚本:event.value是指一个事件的价值(无关与价值你的领域)。它会一直开火,你的条款永远是真的。这就是为什么该领域总是重置。 请参阅下面的答案。 – 2010-07-16 08:51:01

回答

10

中删除脚本,并与下面的JavaScript文件替换:

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

保存表单并打开它,并且日期应该弹出的权利在那里。

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

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

帕克,这完美的作品!非常感谢。当表单打开时,如果该字段为空,则Document Javascript现在插入Today的日期,但如果该字段已有日期,则不会覆盖该字段。我已经复制了其他日期字段的代码:var g = ...; var h = ...;谢谢! (当我得到足够的分数时,如果可以的话,我会给这个答案投票。) – 2010-07-16 14:11:46

+0

乐意帮忙! (我想所有你需要做的是点击向上箭头并选中弹出的框:接受这个答案为“...:>) – 2010-07-16 16:03:01

1

希望如果我添加代码的此编辑为英国用户(新手像我)你不介意

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

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

03/Jan/2013 
0

不幸的是,当我添加 var f = this.getField(“DatepPrinted”); (!f.value)f.value = util.printd(“dd/mmmm/yyyy”,new Date()); 我的自定义击键的形式它让我回到“0”,而不是02-april-2015..oneone知道为什么吗?

+0

这看起来像一个不同的问题发布为答案。问题,如果是。 – rfornal 2015-04-02 13:59:15

1

@井 - 安德森

你只需要删除if语句:

event.target.value = util.printd("m/d/yyyy", new Date());