Немедленное изменение цвета для выпадающего объекта в формате PDF с помощью Javascript

#javascript #object #pdf #adobe #conditional-formatting

Вопрос:

У меня есть форма PDF, которая содержит несколько раскрывающихся списков, содержащих»_», «Да», «Нет», «N/A» и «Другое». Когда пользователь выбирает «Нет», я хочу, чтобы поле стало красным.

В настоящее время я использую код:

  var v = getField("AWA_01").valueAsString;
 if (v=="No") {event.target.fillColor = color.red;}
 else {event.target.fillColor = color.transparent;}
 

Где AWA_01-это имя первого раскрывающегося списка. Я также использовал код:

 switch(this.getField("TTS_01").value) {
case "No":
event.target.fillColor = color.red;
break;
default:
event.target.fillColor = color.transparent;
break;
}
 

Оба этих кода выполняются, но проблема в том, что в Adobe для выполнения кода доступны только следующие параметры: Мышь Вверх, Мышь Вниз, Ввод мыши, Выход мыши, Фокусировка и Размытие. Поскольку «Нет» находится ниже в раскрывающемся списке до того места, где оно находится ниже основного поля, изменение цвета не повлияет до тех пор, пока вы повторно не войдете в поле во второй раз.

введите описание изображения здесь

Я попытался добавить идентичный код в раздел «Будет напечатан» javascript документа, но, похоже, он не работает. Есть ли способ заставить код выполняться немедленно вместо одного из этих стандартных вариантов мыши?

У меня действительно включена функция «Немедленно зафиксировать выбранное значение», но это не помогает.

Комментарии:

1. Прикрепите свой код к действию Форматирования в виде пользовательского сценария форматирования. Формат выполняется после фиксации значения, но до того, как поле будет перерисовано с новым значением.

2. Спасибо @joelgeraci, это сработало прекрасно.

3. джоэл джерачи, ты хочешь вставить свой комментарий в ответ, чтобы я мог вознаградить его?

Ответ №1:

Прикрепите свой код к действию Форматирования в виде пользовательского сценария форматирования. Формат выполняется после фиксации значения, но до того, как поле будет перерисовано с новым значением.