JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/3.1.0/knockout-min.js"></script>
<script src="https://cdn.rawgit.com/Knockout-Contrib/Knockout-Validation/master/Dist/knockout.validation.min.js"></script>
<form action="/Questionnaire/Save" method="post">    <table id="ESAS-questions">
	        <tr class="esas-question-row">
                <td class="esas-best-area">
			        <div class="esas-best-symptom">No Pain</div>
                </td>
                <td class="esas-score-area">
                        <span class="esas-score">0<input type="radio" name="question_id-1" value="0" data-bind="checked: checkScore"/></span>
                        <span class="esas-score">1<input type="radio" name="question_id-1" value="1" data-bind="checked: checkScore"/></span>
                        <span class="esas-score">2<input type="radio" name="question_id-1" value="2" data-bind="checked: checkScore"/></span></td>
                <td class="esas-worst-area">
                    <span class="esas-worst-symptom">Worst Possible Pain</span>
                </td>
            </tr>
	        <tr class="esas-question-row">
                <td class="esas-best-area">
			        <div class="esas-best-symptom">No Tiredness</div>
                        <div class="esas-best-subtext">(Tiredness = lack of energy)</div>
                </td>
                <td class="esas-score-area">
                        <span class="esas-score">0<input type="radio" name="question_id-2" value="0" data-bind="checked: checkScore"/></span>
                        <span class="esas-score">1<input type="radio" name="question_id-2" value="1" data-bind="checked: checkScore"/></span>
                        <span class="esas-score">2<input type="radio" name="question_id-2" value="2" data-bind="checked: checkScore"/></span> </td>
                <td class="esas-worst-area">
                    <span class="esas-worst-symptom">Worst Possible Tiredness</span>
                </td>
           ...

CSS

.invalid{
    color:red;
}
.invalidElement{
    color:red;
}
.validationMessage{
    color:red;
}
.validationElement{
    color:red;
}

JavaScript

$(function() {
    var viewModelQuestionnaire = ko.validatedObservable({
        'checkScore': ko.observable().extend({
            required: true
        }),
        submit: function () {
            if (this.isValid()) {
                alert('Thank you.');
            } else {
                console.log(this);
                alert('Please check your submission.');
                this.errors.showAllMessages();
            }
        }
    });

    ko.applyBindings(viewModelQuestionnaire);
});