Several buttons, one answer
Place buttons of which only one stays chosen at a time, each in its own spot, all belonging to the same question.
Summary
The little circles you choose between: Mr or Mrs, yes or no, morning or afternoon. Pick another and the first one lets go by itself, so the sheet never shows two answers to one question. Each circle goes where you like, beside its own label. You can also decide that, once one has been chosen, the reader always keeps an answer.
Technically
Asked for with
"type": "radio_group"
The group is one /FT /Btn field with the radio bit set and one /Widget under it per button; each button is a spot on the page that turns that one field to its own on-state name. Each button therefore states its rectangle and its value, while the border, the background and the other shared settings hold for the whole group. The starting value and the one a reset restores are given by button name. The mark shown is picked among five symbols, the filled disc by default. An optional lock keeps an answer in place once a button is chosen.
Request schema
Required keys: name, a string; options, an array of objects with a required value (a string, distinct from every other button's and from Off) and a required rect. Optional keys of the group itself: selected, the value of the button chosen to start with; default_selected, the value of the button a reset restores; symbol, one of check, cross, circle, diamond or square (absent: the filled disc); no_toggle_to_off, a boolean at false, which keeps an answer once a button is chosen. Optional keys shared by every field: read_only, required, no_export, booleans at false; background; border (a required width, a color in light, a style); tooltip, a string, absent writing no such entry; mapping_name, a string, the name a submitted form reports the answer under, written on the group and not on one button; flags, the flag word described on the text field page, written on every button of the group, absent printing them and saying nothing else; triggers, one action per moment, the ten of them listed on the text field page; pages, default empty; relative_to. Cross refusals: a CMYK or named-space colour in border.color; a description, which says what a widget says and which a group is refused, its buttons each carrying their own. The group states its rectangles in its options: it has no rect of its own.
A whole request that creates a PDF
{
"items": [
{
"type": "radio_group",
"name": "delivery",
"options": [
{"value": "morning", "rect": {"llx": 72, "lly": 700, "urx": 86, "ury": 714}},
{"value": "afternoon", "rect": {"llx": 72, "lly": 676, "urx": 86, "ury": 690}}
],
"border": {"width": 0.75}
}
]
}
Form fields
A field the reader types into A box the reader ticks A list the reader picks from The place kept for a signature A button the reader presses
Where to go next
Every JSON key of a request, in one page The other twenty-two things you can draw