Заполните поле даты формы Acrobat сегодняшней датой, только если поле пустое - PullRequest
5 голосов
/ 16 июля 2010

Цель состоит в том, чтобы форма Acrobat заполнила поле даты («MeetingDate») сегодняшней датой, когда пользователь открывает ее.Если пользователь сохраняет форму как есть и открывает ее через несколько дней, старая дата все еще должна быть там, а не заменена текущей датой.Если пользователь изменяет дату в поле, эту дату следует сохранить и не следует заменять при открытии формы позже.

У меня есть пользовательский сценарий расчета для поля даты («MeetingDate»), который выполняет всеиз этого, но с одной проблемой:

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

Это работает хорошо, за исключением того, что после ввода сценария сегодняшняя дата заполняет поле MeetingDate и значение сохраняется.Это имеет смысл, но я хочу, чтобы поле было автоматически заполнено сегодняшней датой, когда пользователь открывает форму.Вместо этого, если пользователь откроет форму завтра (16.07.2010), в поле будет 15.07.2010, потому что это дата, когда я сохранил форму.

Я думаю, что ответ может бытьвведите сценарий в качестве документа JavaScript (Advanced | Document Process | Document JavaScripts), поскольку сценарии Document выполняются при открытии формы, но все мои попытки приводят к тому, что введенная пользователем дата перезаписывается при открытии формы через несколько дней. Спасибо за помощь!

Ответы [ 4 ]

10 голосов
/ 16 июля 2010

Удалите ваш скрипт и замените его следующим 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! :>
1 голос
/ 03 октября 2015

@ колодцы-1001 Anderson * *

Вам просто нужно удалить оператор if:

event.target.value = util.printd("m/d/yyyy", new Date());
1 голос
/ 04 января 2013

Надеюсь, вы не возражаете, если я добавлю эту редакцию вашего кода для британских пользователей (и новичков вроде меня)

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

Этот код заполняет поле даты следующим образом ...

03/Jan/2013
0 голосов
/ 02 апреля 2015

К сожалению, когда я добавляю var f = this.getField ("DatepPrinted");if (! f.value) f.value = util.printd ("дд / мммм / гггг", новая дата ());на мое пользовательское нажатие клавиши в форме он возвращает мне «0» вместо 02 апреля 2015 года. Кто-нибудь знает почему?

...