Вопрос или проблема
Может кто-то помочь? У меня есть PDF форма, которая содержит сочетание текстовых полей и выпадающих списков.
У меня возникают проблемы с обязательными выпадающими списками: пример: название выпадающего списка “Валюта” (первая запись является значением по умолчанию – пробел, и 3 другие опции)
- ” “
- “GBP”
- “EUR”
- “USD”
Другой обязательный выпадающий список называется “Статус”.
- ” “
- “Новый”
- “Старый”
- “На месте”
Хотя я отметил выпадающие поля как обязательные, форма все равно позволяет нажимать на кнопку отправки (mailto: ) в конце формы и отправлять ее кому-то, если поле Валюта и поле Статус оставлены на значении по умолчанию.
Я хотел бы, чтобы появлялось сообщение, если они не выбрали GBP / USD или EUR, например, “Отсутствует валюта”, а в другом выпадающем списке, если они не выбрали Новый / Старый или На месте, тогда сообщение “Отсутствует статус”.
Вам нужно будет определить, если одно из полей пустое или если оба выбраны.
Тем не менее, чтобы запускать такие скрипты, необходимо учитывать безопасность Adobe JS.
Для приведенной выше модели я закодировал кнопку, но это не то, как вы установите это в вашем редакторе.
7 0 obj
<</A<</JS(
// пройтись по обязательным полям в документе\r\nvar dd1 = this.getField\("Dropdown1"\).valueAsString;\r\nvar dd2 = this.getField\("Dropdown2"\).valueAsString;\r\n/*установить условие, является ли значение поля пустым */\r\nif \(dd1 == " " || dd2 == " "\){\r\napp.alert \("Вы не сохранили с выбранной как Валютой, так и Статусом"\);\r\n}\r\nelse app.alert \(dd1 + " " + dd2\);)
/S/JavaScript>>/AP<</N 13 0 R>>/BS<</S/B>>/DA(0 g /Helv 12 Tf)/F 4/Ff 65536/FT/Btn/MK<</BC[0 0 0]/BG[.752941 .752941 .752941]/CA(Button)>>/P 9 0 R/Rect[150.32212 676.5608 222.32212 696.5608]/Subtype/Widget/T(Button1)/Type/Annot>>
endobj
Ответ или решение
Проблемы с обязательными выпадающими списками в PDF форме
Работа с заполняемыми PDF формами может иногда представлять сложности. Одной из распространенных проблем, с которой сталкиваются пользователи, является необходимость валидации обязательных полей, таких как выпадающие списки. В данном случае мы рассмотрим, как правильно настроить обязательные выпадающие списки "Валюта" и "Статус" в вашей форме, чтобы избежать отправки незаполненной информации.
Проблема
В вашей PDF форме у вас есть два выпадающих списка:
-
Валюта с опциями:
- " "
- "GBP"
- "EUR"
- "USD"
-
Статус с опциями:
- " "
- "Новый"
- "Старый"
- "На месте"
Хотя эти выпадающие списки отмечены как обязательные, форма позволяет отправить данные (например, используя кнопку mailto:), даже если пользователи оставили поля с предустановленным значением (пустая строка). Ваше желание состоит в том, чтобы пользователи получали предупреждение, если они не выбрали ни одну из допустимых опций.
Решение
Для того чтобы обеспечить корректную валидацию данных перед отправкой формы, вы можете использовать встроенный язык JavaScript, который поддерживается в Adobe Acrobat. Давайте рассмотрим, как можно запрограммировать это поведение.
-
Создание обработчика событий для кнопки отправки.
Вам необходимо привязать событие нажатия на кнопку к функции, которая будет проверять значения ваших выпадающих списков.
var currencyField = this.getField("Currency").value;
var statusField = this.getField("Status").value;
// Проверка, выбирали ли пользователи значения
if (currencyField.trim() === "" || statusField.trim() === "") {
var messages = [];
if (currencyField.trim() === "") {
messages.push("Отсутствует валюта");
}
if (statusField.trim() === "") {
messages.push("Отсутствует статус");
}
app.alert(messages.join("\n"));
} else {
// Если все поля заполнены, можно продолжать
// Здесь можно добавить код для отправки формы
}
Объяснение кода
- Мы получаем значения выпадающих списков, проверяя их на пустоту с помощью метода
trim()
, который убирает пробелы. - Если какое-либо из значений пустое, создается массив сообщений, который включает в себя предупреждения о том, что отсутствует валюта или статус.
- Затем, с помощью
app.alert()
, мы отображаем пользователю сообщения, если одно или несколько из обязательных полей не заполнены.
Итог
Проведя настройку JavaScript для проверки данных перед отправкой формы, вы сможете гарантировать, что пользователи не смогут отправить форму без выбора необходимых значений. Это улучшит качество собираемых данных и деятельно упростит обработку форм.
Все далее, перед тем как внедрять данный код, убедитесь, что у вас активирована поддержка JavaScript и предоставлены все необходимые разрешения для работы с кодом в вашей PDF форме.