Как условно скрыть поле на основе значения другого поля БЕЗ фокуса в Acrobat PDF? - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть форма Acrobat, в которой элементы в списке суммируются и, если значение превышает 5000, после добавления к ним вместе, поле формы с белым фоном должно быть НЕ скрыто, чтобы на форме отображалось предупреждение, которое будет быть напечатанным. (Я не уверен, что смогу условно показать только простой текст - вот почему я это сделал).

Это javascript, который я собрал, чтобы скрыть поле, и это работает - но так как поле, на котором это основано, является полем вычисления, никто никогда не будет фокусироваться на нем, если они не пролистают всю форму (что не будет работать хорошо). Как мне сделать это рассчитать независимо от фокуса пользователя? Или я могу основать фокус на другом поле, не обращая внимания на окно «Свойства»?

if (event.target.value > "4999.99") }
   this.getField("ifOver5000").display = display.hidden;
)
else {
   this.getField("ifOver5000".display = display.visible;
}

ifOver5000 - это поле, которое скрывает текст в форме (уведомлении).

event.target.value относится к полю вычисления, в котором все складывается (поле, на котором должно быть выполнено подтверждение).

1 Ответ

0 голосов
/ 17 апреля 2020

Есть пара моментов, которые нужно изменить, чтобы заставить его работать:

Сначала кажется, что вы пытаетесь использовать свойство style объекта DOM:

// from
this.getField("ifOver5000".display = display.visible;
// to
this.getField("ifOver5000").style.display = 'visible';

Во-вторых, я не уверен, что возвращает метод getField - похоже, он поступил из сторонней библиотеки. Убедитесь, что он возвращает объект DOM или прочитайте документацию этой библиотеки, потому что есть большая вероятность, что у него может быть какое-то конкретное c решение.

Вот рабочая версия:

document.getElementById('inputTarget').addEventListener('keyup', function(event) {
  if (parseFloat(event.target.value) > 4999.99) {
    document.getElementById('ifOver5000').style.display = 'none';
  } else {
    document.getElementById('ifOver5000').style.display = 'block';
  }
});
<input id="inputTarget" value="1900">
<p id="ifOver5000">This should hide if you enter more than 5000 or more</p>
...