JSFiddle - React, Tailwind, and code Playground

HTML

<form id="myform">
    <input name="f1" /><br>
    <input name="f2" /><br>
    <select name="s1">
        <option value="">Select an option</option>
        <option value="o1">Let's be sensible</option>
        <option value="o2">Let's party</option> 
        <option value="o3">Let's get help</option> 
        <option value="o4">Let's go home</option> 
    </select><br>
    <textarea name="t1">xxx</textarea><br>
</form>

JavaScript

function QueryParser(str) {
    /******************** QueryParser **********************
     ********************* by Airshow **********************
     *** http://www.daniweb.com/forums/member512379.html ***
     ********* Please keep this attribution intact *********/
    if (str) {
        str = unescape(str);
        if (str.indexOf("?") === 0) {
            str = str.substring(1);
        }
        var args = str.split("&");
        for (var i = 0; i < args.length; i++) {
            var pair = args[i].split("=");
            if (pair.length >= 1) {
                var prop = pair.shift();
                this[prop] = (pair.length == 1) ? pair[0] : (pair.length > 1) ? pair.join('=') : '';
            }
        }
    }
    this.set = function(prop, value) {
        return this[prop] = value;
    };
    this.clear = function(prop) {
        if (typeof this[prop] !== 'undefined') {
            this.set(prop, null);
            return true;
        }
        else {
            return false;
        }
    };
    this.build = function(baseURL, hashName) {
        baseURL = (!baseURL || typeof baseURL !== 'string') ? '' : (baseURL.indexOf("?") === -1) ? (baseURL + '?') : baseURL;
        hashName = (!hashName || typeof hashName !== 'string') ? '' : (hashName.indexOf("#") === -1) ? ('#' + hashName) : hashName;
        var strArray = [];
        for (var prop in this) {
            if (typeof this[prop] !== 'undefined' && typeof this[prop] !== 'function' && this[prop] !== null) {
                strArray.push([prop, '=', this[prop]].join(''));
            }
        }
        return baseURL + strArray.join('&') + hashName;
    };
    this.buildLink = function(baseURL, linkTxt) {
        var url = this.build(baseURL);
        return ['<a href="', url, '">', ((!linkTxt) ? url : linkTxt), '</a>'].join('');
    };
}

//Emulation of query string
var queryString = "f1=Hello&f2=World!&s1=o4&t1=Farewell!";

var $q = new...