Form keys: list field edit pop-up and unsaved-changes warning

Summary

These keys go on the form definition the app receives (see Mobile JSON shape → Form definition). Add them in code where the form definition is built, for example in the plugin that builds the form’s fields. All keys are optional and all values are JSON strings. Older app builds ignore them and show the form as before.


List field: the edit pop-up

A field with type: "list" and a special_handling of "80" to "84" is shown as a list of rows the user can reorder, switch on or off, and edit. For example, the social platforms field on the GeoDirectory Add/Edit Listing form uses special_handling: "80". Tapping a row’s pencil opens an edit pop-up with a text field and a Save Link button.

iOS 26.40.14 adds keys that change that pop-up and the pencil. Set them on the field to apply to every row, or on a single row to override the field for that row.

Key Values Default Effect
edit_label string no label A label shown above the text field in the pop-up.
edit_placeholder string the platform’s usual placeholder Placeholder text in the text field.
edit_save_label string "Save Link" Text of the pop-up’s save button.
edit_allow_empty "yes" not set Saving with an empty text field is allowed and clears the value. Without it the app asks the user to enter a value.
no_edit "yes" not set Hides the pencil, so the row cannot be edited. The row can still be reordered and switched on or off.

Row overrides field. For the edit_* keys, a non-empty value on the row wins over the field. For no_edit, any non-empty value on the row wins: a row with no_edit: "no" keeps its pencil even when the field says "yes".

{
  "id": "12",
  "type": "list",
  "special_handling": "80",
  "edit_label": "Handle",
  "edit_placeholder": "@yourname",
  "edit_save_label": "Save",
  "edit_allow_empty": "yes"
}

Form-level unsaved-changes warning: form_warn_unsaved

When the warning is on and the user tries to leave a form whose values differ from what it opened with (back button, tab switch, closing the form), the app asks before discarding:

  • Title: Unsaved Changes
  • Message: You have changes that haven’t been submitted. Leave without saving?
  • Buttons: Leave and Keep Editing

The dialog is not shown after a successful submit, and it is not shown when leaving a subform (subforms keep their values for when the user comes back).

The warning could already be turned on with form_warn_unsaved: "yes" in the screen, button or app settings. iOS 26.40.14 also reads it from the form definition itself, so a plugin can turn it on for one form wherever that form is opened:

{
  "id": "42",
  "title": "Edit profile",
  "form_warn_unsaved": "yes",
  "fields": [ ... ]
}

Also in iOS 26.40.14: changes inside list fields (switching a row on or off, editing a row) now count as unsaved changes. Earlier builds could miss them.


Gotchas

  • Values are strings. Send "yes", not true.
  • The pop-up still edits one value per row. These keys change its wording and rules; they do not add fields.
  • Android support for these keys is pending. Check the Android release notes before relying on them there.

  • Forms manager overview
  • Custom field types
  • Mobile JSON shape

Metadata

Field Value
Article type JSON Key Reference
Plugin slug mam-main
Applies to app version iOS 26.40.14+ (Android support pending)
Category App Settings Reference
Audience PHP developer
Last verified 2026-10-01
Was this article helpful?
Contents

    Need Support?

    Can't find the answer you're looking for? Don't worry we're here to help!