checkbox#
The checkbox
property provides a true/false toggle in Page Builder. It maps to an HTML <input type="checkbox">
and outputs a 1
(checked) or 0
(unchecked) value in l.settings:instance
.
It is used for binary options like enabling features, toggling visibility, or activating conditional logic in templates.
checkbox
Definition#
{
"code": "enable_discount",
"prompt": "Enable Discount?",
"type": "checkbox",
"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 "checkbox" . |
required |
boolean | No | If true , user must check before saving. |
preview_property_selector |
string | No | Target element for PageBuilder Inspector. |
visibility_conditions |
object | No | Shows/hides field based on logic. |
l.settings:instance
Structure#
Checkbox values are numeric strings:
:enable_discount:value=1
Unselected
:enable_discount:value=0
Template Usage#
Use the value to conditionally render content:
<mvt:if expr="l.settings:instance:enable_discount:value EQ 1">
<div class="discount-banner">Limited Time Offer!</div>
</mvt:if>
Or direct output:
&mvte:instance:enable_discount:value;
JavaScript Access#
<script>
var instance = <mvt:eval expr="miva_json_encode( l.settings:instance, '' )" />;
var isDiscountEnabled = instance.enable_discount.value == 1;
</script>
defaults
Definition#
Use a defaults
block in flex.json
to pre-check the checkbox:
"defaults": {
"enable_discount": {
"value": 1
}
}
Best Practices#
- Always treat unchecked state as
"0"
(notnull
orfalse
). - Don’t use checkboxes for multiple options — use
radio
orselect
instead. - Use
defaults
to establish a known initial state.
Complete Example#
{
"code": "enable_discount",
"prompt": "Enable Discount?",
"type": "checkbox",
"required": true
}