JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://knockoutjs.com/downloads/knockout-2.2.1.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout-validation/1.0.2/knockout.validation.min.js"></script>
<input type="text" data-bind="value:phone" />
    <br />
    <input type="text" data-bind="value:text" />
    <br />
    <input type="text" data-bind="value:email" />
    <br />
    <div style="border:1px solid red">

    <input type="radio" data-bind="checked:agree" name="agree" value="1" />agree<br />
    <input type="radio" data-bind="checked:agree" name="agree" value="2" />disagree
<span data-bind="validationMessage: agree"></span>
    
    </div>
    <br />
        <div style="border:1px solid red">
    <input type="checkbox" data-bind="checked:vehicle" value="bike" />bike<br />
    <input type="checkbox" data-bind="checked:vehicle" value="car" />car<br />
<span data-bind="validationMessage: vehicle"></span>
</div>
    <input type="button" data-bind="click:save" value="save" />

CSS

.validationMessage
        {
            color: Maroon;
        }

JavaScript

$(document).ready(function () {
            ko.validation.rules['trueOnly'] = {
                validator: function(val) {
                    return val;
                },
                message: "This checkbox is required"
            }
            ko.validation.registerExtenders();
            ko.validation.configure({
                decorateElement: true
            });
            var vm = ko.validatedObservable({
                phone: ko.observable().extend({
                    required: true,
                    pattern: {
                        params: /^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$/,
                        message: 'Invalid Phone Number.'
                    }
                }),
                email: ko.observable().extend({
                    required: true,
                    pattern: {
                        params: /^([\d\w-\.]+@([\d\w-]+\.)+[\w]{2,4})?$/,
                        message: 'Invalid Email Address.'
                    }
                }),
                text: ko.observable().extend({
                    required: true
                }),
                agree: ko.observable().extend({
                    required: true
                }),
                vehicle: ko.observable().extend({
                    trueOnly: true
                }),
                save: function () {
                    if (this.isValid()) {
                        alert('success');
                    }
                    else {
                        this.errors.showAllMessages();
                        alert('error');
                    }
                }
            });
            ko.applyBindings(vm);
        });