JSFiddle - React, Tailwind, and code Playground

by Manna

HTML

<script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script>
<link rel="stylesheet" href="http://jquery.bassistance.de/validate/demo/site-demos.css">
<script src="http://jquery.bassistance.de/validate/lib/jquery.mockjax.js"></script>
<script src="http://jquery.bassistance.de/validate/additional-methods.js"></script>
<script src="http://jquery.bassistance.de/validate/demo/marketo/mktSignup.js"></script>
<div>
  <form id="profileForm" type="actionForm" action="step2.htm" method="get" >


    <table cellpadding="0" cellspacing="0" border="0">
 
        <td class="label"><label for="state">State:</label></td>
        <td class="field">
          <select id="state" class="required" name="state" style="margin-left: 4px;" tabindex="8">
            <option value="">Choose State:</option>
            <option value="AL">Alabama</option><option value="AK">Alaska</option><option value="AZ">Arizona</option><option value="AR">Arkansas</option><option value="CA">California</option><option value="CO">Colorado</option><option value="CT">Connecticut</option><option value="DE">Delaware</option><option value="FL">Florida</option><option value="GA">Georgia</option><option value="HI">Hawaii</option><option value="ID">Idaho</option><option value="IL">Illinois</option><option value="IN">Indiana</option><option value="IA">Iowa</option><option value="KS">Kansas</option><option value="KY">Kentucky</option><option value="LA">Louisiana</option><option value="ME">Maine</option><option value="MD">Maryland</option><option value="MA">Massachusetts</option><option value="MI">Michigan</option><option value="MN">Minnesota</option><option value="MS">Mississippi</option><option value="MO">Missouri</option><option value="MT">Montana</option><option value="NE">Nebraska</option><option value="NV">Nevada</option><option value="NH">New Hampshire</option><option value="NJ">New Jersey</option><option value="NM">New Mexico</option><option value="NY">New York</option><option...

CSS

@import url("http://fonts.googleapis.com/css?family=Lato");
body {
  font-family: Lato, Arial;
  color: white;
  padding: 20px;
  height: 4000px;
}

h1 {
  font-weight: normal;
  font-size: 40px;
  font-weight: normal;
  text-transform: uppercase;
}
h1 span {
  font-size: 13px;
  display: block;
  padding-left: 4px;
}

p {
  margin-top: 200px;
}
p a {
  text-transform: uppercase;
  text-decoration: none;
  display: inline-block;
  color: #fff;
  padding: 5px 10px;
  margin: 0 5px;
  background-color: #b83729;
  -moz-transition: all 0.2s ease-in;
  -o-transition: all 0.2s ease-in;
  -webkit-transition: all 0.2s ease-in;
  transition: all 0.2s ease-in;
}
p a:hover {
  background-color: #ab3326;
}

.select-hidden {
  display: block;
  visibility: visible;
  padding-right: 10px;
  position: relative;
}

.select {
  cursor: pointer;
  display: inline-block;
  position: relative;
  font-size: 16px;
  color: white;
  width: 220px;
  height: 40px;
}

.select-styled {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: #c0392b;
  padding: 8px 15px;
  -moz-transition: all 0.2s ease-in;
  -o-transition: all 0.2s ease-in;
  -webkit-transition: all 0.2s ease-in;
  transition: all 0.2s ease-in;
}
.select-styled:after {
  content: "";
  width: 0;
  height: 0;
  border: 7px solid transparent;
  border-color: white transparent transparent transparent;
  position: absolute;
  top: 16px;
  right: 10px;
}
.select-styled:hover {
  background-color: #b83729;
}
.select-styled:active, .select-styled.active {
  background-color: #ab3326;
}
.select-styled:active:after, .select-styled.active:after {
  top: 9px;
  border-color: transparent transparent white transparent;
}

.select-options {
  display: none;
  position: absolute;
  overflow-x: scroll;
  height: 150px;
  top: 100%;
  right: 0;
  left: 0;
  z-index: 999;
  margin: 0;
  padding: 0;
  list-style: none;
  background-color: #ab3326;
}
.select-options li {
  margin: 0;
  padding: 12px 0;
 ...

JavaScript

$(document).ready(function(i){  
  $('select').each(function(i){
    var $this  = $(this)
    var $id    = $(this).attr('id') + '_list'
    var currentSelection = 0;
    var currentUrl = '';

    numberOfOptions = $(this).children('option').length;
  
    $this.addClass('select-hidden'); 
    $this.wrap('<div class="select"></div>');
    $this.after('<div class="select-styled" tabindex='+(i+1)+'></div>');

    var $styledSelect = $this.next('div.select-styled');
    $styledSelect.text($this.children('option').eq(0).text());

    var $list = $('<ul />', {
        'id'   : $id,
        'class': "select-options"
    }).insertAfter($styledSelect);

    for (var i = 0; i < numberOfOptions; i++) {
        $('<li />', {
            text: $this.children('option').eq(i).text(),
            'class': $this.children('option').eq(i).val()
        }).appendTo($list);
    }
  
    var $listItems = $list.children('li');

    function setFocus(e) {
      e.stopPropagation();
      $('div.select-styled.active').each(function(){
       $(this).removeClass('active').next('ul.select-options').hide();
      });
      $(this).toggleClass('active').next('ul').toggle();
      $hint   = $(this).parent().parent().find('.hint');
      $list.toggleClass('active');
      $select = $(this).parent().parent().find('select');
      $hint.show();
    };

    //function ToggleVisibility(e) {
      //e.stopPropagation();
      //$('div.select-styled.active').each(function(){
        //var notActive = $('#signup_form').find(".select-styled:not('.active')").next('ul.select-options');
        //$notActive.hide();
        //$(this).toggleClass('active').next('ul.select-options').toggleClass('active');
      //});
      //$('div.select-styled.active').focusout(function(){
      //if($('div.select-styled').hasClass('active')){
        //$(this).toggleClass('active').next('ul.select-options').toggleClass('active');
        //$('.select').find('ul.select-options.active');
      //} else {
       ...