JSFiddle - React, Tailwind, and code Playground

by Emre Erkan

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<div class="container-fluid">
    <div class="row">
        <div class="col-md-12">
            <fieldset>
                <legend>Add new event:</legend>
                <div class="form-group">
                    <label for="event">Event name</label>
                    <input type="text" id="txt-event" class="form-control" />
                </div>
                <div class="form-group">
                    <label for="date">Event date</label>
                    <input type="date" id="txt-date" class="form-control" />
                </div>
                <div class="form-group">
                    <button id="btn-add" class="btn btn-success">Add</button>
                </div>
            </fieldset>
            <div class="alert alert-warning">Please fill all fields to add a new event</div>
        </div>
    </div>
    <div class="row">
        <div class="col-md-12">
            <table class="table table-striped">
                <thead>
                    <tr>
                        <th>#</th>
                        <th>Name</th>
                        <th>Date</th>
                        <th>Actions</th>
                    </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </div>
    </div>
</div>

JavaScript

var recId = 1;
window.addEventListener('load', function(e) {
    document.querySelector('.alert').style.display = 'none';
    document.getElementById('btn-add').addEventListener('click', function(e) {
        var txtEvent = document.getElementById('txt-event'), txtDate = document.getElementById('txt-date'), tbody, idx, row, cell, msgbox = document.querySelector('.alert');
        msgbox.style.display = 'none';
        if('' === txtEvent.value || '' === txtDate.value) {
            msgbox.style.display = 'block';
        }
        else {
            tbody = document.querySelector('tbody');
            idx = tbody.querySelectorAll('tr').length;
            row = tbody.insertRow(idx);
            row.id = 'row' + recId;
            cell = row.insertCell(0);
            cell.innerHTML = recId;
            cell = row.insertCell(1);
            cell.innerHTML = txtEvent.value;
            cell = row.insertCell(2);
            cell.innerHTML = txtDate.value;
            cell = row.insertCell(3);
            cell.innerHTML = '<button class="btn btn-info">Details</button> <button class="btn btn-danger">Delete</button>';
            document.querySelector('#row' + recId + ' .btn-danger').addEventListener('click', function(e) {
                var row = this.parentNode.parentNode;
                row.parentNode.removeChild(row);
            });
            recId++;
        }
    });
});