Skip to content

select#


The select property provides a dropdown menu in the Page Builder admin interface. It allows users to choose a single value from a predefined list of options, just like an HTML <select> element.

Select Definition#

{
  "code": "alignment",
  "prompt": "Text Alignment",
  "type": "select",
  "options": [
    { "text": "Left", "value": "left" },
    { "text": "Center", "value": "center" },
    { "text": "Right", "value": "right" }
  ],
  "required": true
}

Supported Fields#

Field Type Required Description
code string Yes Unique key used in l.settings:instance.
prompt string Yes Label shown in the admin interface.
type string Yes Must be "select".
required boolean No If true, the user must select a value before saving.
options array Yes List of { "text": "", "value": "" } options for the dropdown.
preview_property_selector string No Target element for PageBuilder Inspector.
visibility_conditions object No Shows/hides field based on logic.

l.settings:instance Structure#

:alignment:value=center

The stored value corresponds to the selected dropdown option.

Template Usage#

<p>Alignment: &mvte:instance:alignment:value;</p>

<mvt:if expr="l.settings:instance:alignment:value EQ 'center'">
  <div class="text-center">Centered Text</div>
</mvt:if>

JavaScript Access#

<script>
  var instance = <mvt:eval expr="miva_json_encode( l.settings:instance, '' )" />;
  var alignment = instance.alignment.value;
</script>

defaults Definition#

To set an initial selected option, use the defaults block:

"defaults": {
  "alignment": {
    "value": "center"
  }
}

Best Practices#

  • Always include at least two options for user selection.
  • Use semantic value strings for clarity ("left", "right", "primary", etc.).
  • Use required: true if the field must have a value selected.
  • Keep value strings lowercase with hyphens or underscores for consistency.

Complete Example#

{
  "code": "cta_style",
  "prompt": "Button Style",
  "type": "select",
  "required": true,
  "options": [
    { "text": "Primary", "value": "primary" },
    { "text": "Secondary", "value": "secondary" },
    { "text": "Outline", "value": "outline" }
  ]
}

Output#

:cta_style:value=primary

Template#

<a class="btn &mvte:instance:cta_style:value;">Shop Now</a>