2010-04-01 2 views
3

Используя PDF, можно ли создать один элемент формы с несколькими полями, из которых можно выбрать несколько? Например, в HTML, можно создать набор флажков, связанные с таким же названием полей:Поле формы Multiselect в PDF

<div>Select one for Member of the School Board</div> 
<input type="checkbox" name="field(school)" value="vote1"> 
<span class="label">Libby T. Garvey</span><br/> 
<input type="checkbox" name="field(school)" value="vote2"> 
<span class="label">Emma N. Violand-Sanchez</span><br/> 

В этом случае имя поля «поле (школа)», и когда форма была отправлена, " поле (школа) "может быть поставлено 0, 1 или 2 раза.

Существует ли эквивалентная конструкция в PDF, где одно поле может иметь несколько значений. До сих пор в моем исследовании выяснилось, что если полям присвоено одинаковое имя, можно выбрать только одно поле. Если это возможно реализовать в PDF, что называется этой конструкцией и как ее можно реализовать?

Редактировать: Чтобы уточнить, я знаю, что PDF может содержать несколько полей формы с разными именами полей, и их можно выбирать независимо, но тогда группировка является неявной и не явной, как в HTML-форме. Я хотел бы использовать конструкцию, которая делает группировку опций явной и предпочтительно допускает ограничения (например, по крайней мере одно требуемое, не более двух разрешенных и т. Д.).

Редактировать: Если кто-то может найти авторитетное мнение, что это невозможно, это также было бы желательным ответом.

+0

@ Jason R. Coombs Можете ли вы предоставить статью/учебник, где я могу получить информацию о том, как создать pdf-форму? –

+0

Формы, с которыми я работаю, были созданы Adobe Acrobat. –

+0

Будет ли работать многосекторальный список? – 2011-06-16 04:39:27

ответ

1

ответ asnyder привели меня к выводу, что нет автоматического способа обработки нескольких значений в одном поле (как можно с HTML). Примеры asnyder взяты из разработки приложений Acrobat с использованием JavaScript, доступных с Acrobat Javascript Developer Center. В этом документе приведены некоторые примеры того, как манипулировать флажками, полями со списком и переключателями. Все примеры пролили некоторый свет на проблему и в конечном итоге привели меня к выводу, что любая система, использующая PDF-формы, будет иметь несекретно определенные группы с несколькими выборами.

Использование конструкции groupName.fieldName представляется полезным для манипулирования виджетами в виде группы (в Acrobat Javascript), но поля группы не могут быть перечислены (без перечисления всех полей и фильтрации для groupName) и коллективное значение этой группы невозможно определить без программной проверки значений.

Другими словами, многоцелевое значение не является неотъемлемой чертой Acrobat и PDF каким-либо существенным образом, хотя с помощью программирования можно реализовать такую ​​форму.

1

Да, это возможно. В Adobe PDFs вы имеете концепцию флажка и концепцию переключателя. Хотя каждый флажок и переключатель могут иметь свое собственное имя, однако, они также могут быть сгруппированы через субтитры через GroupName.subobj.

Adobe описывает его следующим образом:

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

Когда поля задаются по иерархии, вы можете получить значение myGroup в этом случае и вернуть выбранное значение группы. Аналогично в случае с RadioButtons вы должны убедиться, что все поля в группе имеют одинаковое имя.

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

должны быть установлены с один оператором, в котором массив значений присваиваются свойством exportValues ​​Полевого объекта. Например, предположим, что хотели бы создать набор из трех радиостанций , каждый 12 точек в ширину и 12 точек с высоким разрешением, все с именем myRadio. We разместит их на странице 5 документа , а их значения экспорта будут be Yes, No и Cancel. Они могут быть созданы, как показано в коде, приведенном ниже:

var name = "myRadio"; 
var type = "radiobutton"; 
var page = 5; 
var rb = this.addField(name, type, page, [400, 442, 412, 430]); 
this.addField(name, type, page, [400, 427, 412, 415]); 
this.addField(name, type, page, [400, 412, 412, 400]); 
rb.exportValues=["Yes", "No", "Cancel"]; 
+0

Я пробовал это в Acrobat 9, и это не работает для меня. Я создал четыре поля флажка, названных school.a, school.b, ..., а затем я проверил два из них. Затем я запросил значение this.getField ('school'). В отладчике JS, но он ничего не возвращает (без ошибок, без вывода). –

+0

Хм, это должно работать согласно их документации. Есть ли способ получить все поля и выполнить итерацию, чтобы узнать, что такое каждый? – asnyder

+0

Можно перебирать все поля (хотя кажется, что вы не можете перебирать только поля группы). Конструкция группы кажется полезной, главным образом, при манипулировании виджетами, но не значениями (и особенно коллективной) группы. К сожалению, групповая конструкция очень мало помогает в получении совокупной стоимости набора виджетов ... программисту все равно нужно заранее знать, какие виджеты сгруппированы и какие-либо агрегирования вручную. Программист может вызывать группы по имени, но эта конструкция более условна, чем протокол. –

Смежные вопросы