Checkbox - smbc-digital/form-builder GitHub Wiki

Refer to Stockport Design System for styling information and reference images

Related

DSL properties

Property Type Required Default Value Description
QuestionId string ✔️ Unique question id allowed charatcers are [a-zA-Z] only
Label string ✔️ Label associated with the search term
Warning string Warning which appears above the input NOTE: Only use one of Warning, Hint or IAG
Hint string Hint which appears above the input. If using Dynamic Lookup & Select Exactly, the Hint will be populated for you NOTE: Only use one of Warning, Hint or IAG
IAG string Inset text to appear below the Label. NOTE: Only use one of Warning, Hint or IAG
Optional bool false
OptionalIf Condition A condition that can be used to determine if the element is optional by comparing it to an earlier answer
CustomValidationMessage string Set a custom validation message for when user does not select an option. There is automatic validation there. If using Dynamic Lookup & Select Exactly, the Custom Validation Message will be populated for you
ExclusiveCheckboxValidationMessage string Set a custom validation message for when javascript in not enabled while using an exclusive option. This is required when an option provided is exclusive
TargetMapping string Used for custom object mapping when creating submit data
StrongLabel bool true Labels associated to inputs are strong
LegendAsH1 bool false Display the input's label as a h1 and not a legend (if this is set to true, HideTitle in the Page properties should also be set to true)
Options object ✔️ Select options
ConditionalElementId string Display the element with this id only when option is checked More info
OrderOptionsAlphabetically Boolean false Default ordering as input order unless set to true
SummaryLabel string Change the label associated with this input on the summary
SelectExactly int The number of checkboxes that are required to be selected

Checkbox examples

DS Json for single checkbox on a page:

{
  "Title": "Your hobbies",
  "HideTitle": true,
  "PageSlug": "your-hobbies",
  "HideBackButton": true,
  "Elements": [
    {
      "Type": "Checkbox",
      "Properties": {
        "QuestionId": "whatHobbies",
        "Label": "What are your hobbies?",
        "LegendAsH1": true,
        "Options": [
          {
            "Text": "Start writing a book",
            "Value": "book"
          },
          {
            "Text": "Take a photography course",
            "Value": "photography"
          }
        ]
      }
    }
  ]
}

DS Json for checkboxes:

  {
    "Type": "Checkbox",
    "Properties": {
      "QuestionId": "whatHobbies",
      "Label": "What are your hobbies?",
      "StrongLabel": true,
      "Options": [
        {
          "Text": "Start writing a book",
          "Value": "book"
        },
        {
          "Text": "Take a photography course",
          "Value": "photography"
        }
      ]
    }
  }

DS Json for checkbox with conditonal element:

{
   "Type": "Checkbox",
    "Properties": {
      "QuestionId": "whatHobbies",
      "Label": "What are your hobbies?",
    "Options": [
      {
          "Text": "Start writing a book",
          "Value": "book"
        },
        {
          "Text": "Take a photography course",
          "Value": "photography",
          "ConditionalElementId": "tellUsMore"
        }
    ]
  }
},
{
  "Type": "TextBox",
  "Properties": {
    "QuestionId": "tellUsMore",
    "Label": "Tell us more",
    "IsConditionalElement": true
  }
}

SelectExactly Example

Exactly four checkboxes out of eight are required:

{
          "Type": "Checkbox",
          "Properties": {
            "Hint": "Select exactly four options",
            "Label": "What are your hobbies?",
            "CustomValidationMessage": "Select exactly four options",
            "QuestionId": "optionalHobbies",
            "LegendAsH1": true,
            "Optional": false,
            "SelectExactly": 4,
            "Options": [
              {
                "Text": "Learn a foreign language",
                "Value": "language",
                "Hint": "Ie: Chinese, Russian, Romanian"
              },
              {
                "Text": "Start writing a book",
                "Value": "book"
              },
              {
                "Text": "Take a photography course",
                "Value": "photography"
              },
              {
                "Text": "Make your own jewellery",
                "Value": "jewellery"
              },
              {
                "Text": "Bird Watching",
                "Value": "bird watching"
              },
              {
                "Text": "Cycling",
                "Value": "cycling"
              },
              {
                "Text": "Hill Walking",
                "Value": "hill walking"
              },
              {
                "Text": "Pottery Classes",
                "Value": "pottery classes"
              }
            ]
          }
        },
        {
          "Type": "Button",
          "Properties": {
            "ButtonId": "continue"
          }
        }

All possible properties example:

  {
    "Type": "Checkbox",
    "Properties": {
      "QuestionId": "whatHobbies",
      "Hint": "You can select more than one option",
      "Warning": "Please read carefully",
      "StrongLabel": true,
      "LegendAsH1": true,
      "Label": "What are your hobbies?",
      "Optional": true,
      "IAG": "some additonal IAG text to appear in an inset",
      "TargetMapping": "customer.Hobbies",
      "CustomValidationMessage": "Select your favorite day",
      "ExclusiveCheckboxValidationMessage": "Error message for exclusive checkbox option",
      "Options": [
        {
          "Text": "Start writing a book",
          "Value": "book"
        },
        {
          "Text": "Take a photography course",
          "Value": "photography",
          "Hint": "You just need a phone or camera and passion for photography",
          "Divider": "or",
          "Exclusive": true
        }
      ]
    }
  }