EXTERNAL - Documentation

Validation

Validation states of the interactive question grid used to help flag up lack of input.

Usage


To add an invalid state to these elements use slb-invalid onto the input tag of a form. Add the class of 'slb-form__error-message' and input an appropriate validation message for the error message.

Accessible attributes


Accessible attribute Description
aria-invalid="true" This attribute is used to indicate that the value entered into an input field does not conform to the format expected by the application. Set to true if value has failed validation otherwise set to false.

JavaScript Support


JavaScript Support class name Description
slb-invalid When the input is invalid the form element will change the colours to ux-red and adds in a flag icon.
How do you plan to answer this question?

Error message

Answer 1

Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.

Answer 2

Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.

Answer 3

Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.

Answer 4

Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.

Answer 5

Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.

Answer 6

Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.

Markup: interactive-question\interactive-question-validation.hbs Copy
<form>
    <fieldset class="slb-question" id="question-grid-id" aria-label="Interactive question">
        <div class="container mt-5">
            <legend class="slb-question__text">How do you plan to answer this question?</legend>
            <div class="row">
                <div class="form-check col-sm-6">
                    <input type="radio" class="form-check-input slb-form__input slb-invalid" id="input-id-1" data-toggle="collapse" data-target="#answer-id-1" name="question-input-block" aria-expanded="false" aria-controls="answer-id-1">
                    <label class="slb-form__label slb-form__label--small ml-3">Input Label</label>
                    <label class="form-check-label form-check-label--question" for="input-id-1">Answer 1</label>
                </div>
                <div class="form-check col-sm-6">
                    <input type="radio" class="form-check-input slb-form__input slb-invalid" id="input-id-2" data-toggle="collapse" data-target="#answer-id-2" name="question-input-block" aria-expanded="false" aria-controls="answer-id-2">
                    <label class="form-check-label form-check-label--question" for="input-id-2">Answer 2</label>
                </div>
                <div class="form-check col-sm-6">
                    <input type="radio" class="form-check-input slb-form__input slb-invalid" id="input-id-3" data-toggle="collapse" data-target="#answer-id-3" name="question-input-block" aria-expanded="false" aria-controls="answer-id-3">
                    <label class="form-check-label form-check-label--question" for="input-id-3">Answer 3</label>
                </div>
                <div class="form-check col-sm-6">
                    <input type="radio" class="form-check-input slb-form__input slb-invalid" id="input-id-4" data-toggle="collapse" data-target="#answer-id-4" name="question-input-block" aria-expanded="false" aria-controls="answer-id-4">
                    <label class="form-check-label form-check-label--question" for="input-id-4">Answer 4</label>
                </div>
                <div class="form-check col-sm-6">
                    <input type="radio" class="form-check-input slb-form__input slb-invalid" id="input-id-5" data-toggle="collapse" data-target="#answer-id-5" name="question-input-block" aria-expanded="false" aria-controls="answer-id-5">
                    <label class="form-check-label form-check-label--question" for="input-id-5">Answer 5</label>
                </div>
                <div class="form-check col-sm-6">
                    <input type="radio" class="form-check-input slb-form__input slb-invalid" id="input-id-6" data-toggle="collapse" data-target="#answer-id-6" name="question-input-block" aria-expanded="false" aria-controls="answer-id-6">
                    <label class="form-check-label form-check-label--question" for="input-id-6">Answer 6</label>
                </div>
                <div class="col-12 col-md-6 col-lg-4 slb-invalid">
                    <p class="slb-form__error-message">Error message</p>
                </div>
                <button class="slb-question__reset">Change</button>
            </div>
            <div class="row mx-0">
                <div id="answer-id-1" class="slb-question__answer col collapse" data-parent="#question-grid-id" aria-labelledby="input-id-1">
                    <div class="slb-question__answer-content">
                        <h6>Answer 1</h6>
                        <p>Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.</p>
                    </div>
                </div>
                <div id="answer-id-2" class="slb-question__answer col collapse" data-parent="#question-grid-id" aria-labelledby="input-id-2">
                    <div class="slb-question__answer-content">
                        <h6>Answer 2</h6>
                        <p>Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.</p>
                    </div>
                </div>
                <div id="answer-id-3" class="slb-question__answer col-12 collapse" data-parent="#question-grid-id" aria-labelledby="input-id-3">
                    <div class="slb-question__answer-content">
                        <h6>Answer 3</h6>
                        <p>Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.</p>
                    </div>
                </div>
                <div id="answer-id-4" class="slb-question__answer col-12 collapse" data-parent="#question-grid-id" aria-labelledby="input-id-4">
                    <div class="slb-question__answer-content">
                        <h6>Answer 4</h6>
                        <p>Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.</p>
                    </div>
                </div>
                <div id="answer-id-5" class="slb-question__answer col-12 collapse" data-parent="#question-grid-id" aria-labelledby="input-id-5">
                    <div class="slb-question__answer-content">
                        <h6>Answer 5</h6>
                        <p>Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.</p>
                    </div>
                </div>
                <div id="answer-id-6" class="slb-question__answer col-12 collapse" data-parent="#question-grid-id" aria-labelledby="input-id-6">
                    <div class="slb-question__answer-content">
                        <h6>Answer 6</h6>
                        <p>Ipsum dolor sit amet, consectetur uradic adipiscing elit. Maecenas id orci vel sapien molli porta ut non neque curabitur odio mauris.</p>
                    </div>
                </div>
            </div>
        </div>
    </fieldset>
</form>
Source: components/_interactive-question.scss