JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://cdn.rawgit.com/digitalBush/jquery.maskedinput/1.4.1/dist/jquery.maskedinput.min.js"></script>
<form id="validateForm" method="POST" autocomplete="off">
                            <div class="owner">
                                <label class="param">Владелец</label>
                                <input id="cardHolder" data-validate="required latin twoWords" class="need-validate" value="" placeholder="Ivan Ivanov" type="text">
                                <div id="errName" class="error-message"></div>
                            </div>

                            <div class="number-card">
                                <label class="param">Номер банковской карты</label>
                                <input id="cardNumber" data-validate="required num" class="need-validate" value="" type="text">
                                <div id="errCard" class="error-message"></div>
                            </div>

                            <div class="select-form">
                                <div class="flex-itm">
                                    <div class="margin-right">
                                        <label class="param">Срок действия</label>
                                        <div class="clear"></div>
                                        <select class="select-input">
                                            <option value="01">01</option>
                                            <option value="02">02</option>
                                            <option value="03">03</option>
                                            <option value="04">04</option>
                                            <option value="05">05</option>
                                            <option value="06">06</option>
                                            <option value="07">07</option>
                                            <option value="08">08</option>
                                            <option...

CSS

/*validate*/
.error{
    color:red;
}
.error{
    border-color:red;
}
.error-message{
    color:red;
    font-size: 12px;
    text-transform: none;
    position:absolute;
}

#cardHolder{
    text-transform: uppercase;
}

JavaScript

'use strict';

Date.prototype.get2Year = function() {
    return this.getFullYear().toString().substr(2);
};


$(function($){
    $("#acctNumber").mask("999999");
    $("#sumCheck").mask("99999");
    $("#cardNumber").mask("9999 9999 9999 9999?999");
    $("#cardCode").mask("999");

    var $showDivButton, $hiddenBlock, $closeButton;
    var duration = 1 * 1000;

    $showDivButton = $('#about');
    $hiddenBlock = $('#showDiv');
    $closeButton = $('#closeButton');

    $showDivButton.on('click', function() {
        $hiddenBlock.stop().slideToggle(duration);
    });

    $closeButton.on('click', function() {
        $hiddenBlock.stop().slideUp(duration);
    });

var selectOption = document.createElement('option'),
    optionYear = document.getElementById('optionYear'),
    currentYear = new Date().get2Year();

    for(var i = 0; i <= 10; i++){
        var newOption = selectOption.cloneNode(),
            year = currentYear++;
        newOption.innerHTML = year;
        newOption.value = year;
        optionYear.appendChild(newOption);
    }

    var validator = {
        required: function($el) {
            return $el.val() != '';
        },
        num: function($el) {
            var re = /[0-9]/;
            return re.test($el.val());
        },
        latin: function($el) {
            var re = /[a-zA-Z]/;
            return re.test($el.val());
        },
        twoWords: function($el) {
            var re = /(\w+) (\w+)/;
            return re.test($el.val());
        },
        markAsError: function($el, error_msg) {
            $el.addClass('error').next().html(error_msg);
        },
        messages: function(rules) {
            switch(rules) {
                case 'required':
                    return 'Поле не заполнено';
                    break;
                case 'num':
                    return 'Поле должно содержать только цифры';
                    break;
                case 'latin':
                    return 'Поле должно содержать...