The CheckBox component provides a single checkbox for collecting binary (yes/no, true/false, agree/disagree) responses from users.

Basic Usage

const agreementCheckbox = new CheckBox({
    id: 'terms_agreement',
    text: 'I agree to the terms and conditions',
    required: true
});

Parameters

id
string
required
Unique identifier for the checkbox.
text
string
required
The label text for the checkbox.
required
boolean
default:"true"
Whether the checkbox must be checked.
customValidation
function
A custom validation function that takes the response as input and returns true if valid, or an error message string if invalid.
styles
object
Custom styles to apply to the checkbox. Available keys are:
  • root
  • innerContainer
  • checkboxFlexContainer
  • checkbox
  • checkboxLabel
  • errorMessage

Data

Response Format The CheckBox component returns a boolean value:
true  // when checked
false // when unchecked
Validation The CheckBox component validates that:
  1. The checkbox is checked when required is true.
  2. Any custom validation provided in the customValidation function passes.
If validation fails, it displays an error message.

Advanced

Methods

The CheckBox component inherits methods from the base Element class and includes some specific methods:
setResponse
function
Set the response for the checkbox.Parameters:
  • value (boolean): The checked state of the checkbox
checkboxQuestion.setResponse(true);
validate
function
Validate the current response against the checkbox’s rules.Returns:
  • An object with isValid (boolean) and errorMessage (string) properties.
const { isValid, errorMessage } = checkboxQuestion.validate();

Example

Here’s an example of how to create a more customized checkbox:
const newsletterSubscription = new CheckBox({
    id: 'newsletter_signup',
    text: 'Subscribe to our newsletter',
    required: false,
    customValidation: (response) => {
        // Custom validation logic here
        return true; // or return an error message string
    },
    styles: {
        root: { 
            backgroundColor: '#f0f8ff',
            padding: '15px',
            borderRadius: '8px',
            boxShadow: '0 2px 4px rgba(0,0,0,0.1)'
        },
        checkboxFlexContainer: {
            display: 'flex',
            alignItems: 'center',
            justifyContent: 'flex-start',
            gap: '10px',
        },
        checkboxLabel: { 
            color: '#2c3e50',
            fontSize: '1.2em',
            fontWeight: 'normal',
        },
        checkbox: {
            width: '20px',
            height: '20px',
            accentColor: '#3498db'
        },
        errorMessage: {
            color: '#e74c3c',
            fontWeight: 'bold',
            marginTop: '5px'
        }
    }
});
This example demonstrates how to use custom styling and validation to create a more tailored checkbox component.