Установка поля на основе выбора ComboBox - PullRequest
3 голосов
/ 14 мая 2011

Я не новичок в JavaScript, но это мой первый набег в скриптах Acrobat.

Я пытаюсь изменить текстовое поле на основе значения, выбранного в поле со списком.

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

Я не уверен, возможно ли это, но вот что я думаю ...

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

Вот шаги:

  • захват поля со списком событие onmouseup
  • определяет, какое поле со списком вызвало событие.
  • сопоставляет имя поля со списком и соответствующее текстовое поле, используя список массивов
  • , используя getField () для извлечения текстового поля
  • установить значение текстовых полей равным экспортному значению поля со списком

Любая помощь с этим будет приветствоваться.Особенно хорошие источники о событиях Acrobat и о том, как они работают.Я прошел большую часть документации по API и не могу найти в ней ничего.

1 Ответ

4 голосов
/ 21 февраля 2012

Нашел его!

После долгих часов / дней поиска в Google я наконец нашел решение, которое работает.

Функция обработчика должна быть связана с событием 'Keystroke'.

Функция обработчика должна содержать:

if(!event.willCommit) {
  this.getField('[field]').value = event.change;
}

Примечание: где 'field' - это имя обновляемого поля, а event.change - значение, выбранное вполе со списком.

Чтобы получить экспортное значение выбора, используйте следующее:

if(!event.willCommit) {
  this.getField('[field]').value = event.changeEx;
}

Очевидно, что нажатие клавиши вызывается каждый раз, когда пользовательский интерфейсэлемент взаимодействует с.Если вы не хотите, чтобы он выполнялся при загрузке документа, обязательно связывайте функцию-обработчик с событием во время события загрузки страницы.

Мысли: AcroForms JS (Javascript for Acrobat) имеетсерьезно сломанная модель события.Если бы вы получили значение комбобокса при использовании этого даже обработчика, он бы выдал устаревшее значение.Мало того, что для того, чтобы это заработало, требуется неясный взлом, но сообщества AcroForms JS практически не существует, чтобы дать ответы на сложные вопросы, подобные этим.

...