目标是使用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(高级|文档处理|文档JavaScripts)输入,因为文档脚本在打开表单时执行,但我的所有尝试都会导致用户输入的日期为表单在几天后打开时被覆盖。 谢谢寻求帮助!
答案 0 :(得分:10)
删除您的脚本并将其替换为以下文档javascript:
var f = this.getField("wells_datefield");
if (!f.value) f.value = util.printd ("m/d/yyyy", new Date());
保存表单并将其打开,日期应该在那里弹出。
在制作文档javascript时,请记住不要将其放在函数中。这样做的一种方法如下。在Acrobat菜单中:
答案 1 :(得分:1)
希望你不介意我为英国用户(以及像我这样的新手)添加你的代码编辑
var f = this.getField("date");
if (!f.value) f.value = util.printd ("dd/mmm/yyyy", new Date());
此代码填写日期字段,如下所示......
03/Jan/2013
答案 2 :(得分:1)
@井-安德森
您只需要删除if语句:
event.target.value = util.printd("m/d/yyyy", new Date());
答案 3 :(得分:0)
不幸的是,当我添加 var f = this.getField(" DatepPrinted"); if(!f.value)f.value = util.printd(" dd / mmmm / yyyy",new Date()); 我在表格上的自定义按键让我回来了#34; 0"而不是02年4月 - 2015年......任何人都知道为什么?