news subscribe form

by davehol

HTML

<form action="">
  <fieldset>
    <legend>Categories</legend>
    <div class="row">
      <div class="column">
        <label class="container">Science
  <input type="checkbox" checked="checked">
  <span class="checkmark"></span>
</label>
      </div>
      <div class="column">
        <label class="container">Health
  <input type="checkbox" checked="checked">
  <span class="checkmark"></span>
</label>
      </div>
      <div class="column">
        <label class="container">Technology
  <input type="checkbox" checked="checked">
  <span class="checkmark"></span>
</label>
      </div>
    </div>


    <div class="row">
      <div class="column">
        <label class="container">Business and Entreprenurship
  <input type="checkbox" checked="checked">
  <span class="checkmark"></span>
</label>
      </div>
      <div class="column">
        <label class="container">Art, design and Culture
  <input type="checkbox" checked="checked">
  <span class="checkmark"></span>
</label>
      </div>
      <div class="column">
        <label class="container">Society and environment
  <input type="checkbox" checked="checked">
  <span class="checkmark"></span>
</label>
      </div>
    </div>

    <div class="row">
      <div class="column">
        <label class="container">Research
  <input type="checkbox" checked="checked">
  <span class="checkmark"></span>
</label>
      </div>

    </div>
  </fieldset>
  <fieldset>
    <legend>Enter your details</legend>
    <label>First name</label>
    <input type="text" />
    <label>Last name</label>
    <input type="text" />
    <label>Email</label>
    <input type="text" />
    <label>Employer</label>
    <input type="text" />
    <label>From</label>
    <div id="test">

      <select>
    <option value="">Please select...</option>
      <option value="one">one</option>
      <option value="two">two</option>
      <option value="three">three</option>
    </select></div>
  </fieldset>
</form>

CSS

* {
  box-sizing: border-box;
}

/* Create three equal columns that floats next to each other */

.column {
  float: left;
  width: 33.33%;
  padding: 0px;
  height: 100px;
  /* Should be removed. Only for demonstration */
}

/* Clear floats after the columns */

.row:after {
  content: "";
  display: table;
  clear: both;
}

/* Responsive layout - makes the three columns stack on top of each other instead of next to each other */

@media screen and (max-width:1000px) {
  .column {
    width: 100%;
  }
}

.container {
  display: block;
  position: relative;
  padding-left: 50px;
  margin-bottom: 30px;
  cursor: pointer;
  font-family: HelveticaNeue;
  font-size: 24px;
  font-weight: normal;
  color: #333;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Hide the browser's default checkbox */

.container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}

/* Create a custom checkbox */

.checkmark {
  position: absolute;
  top: -2px;
  left: 0;
  height: 37px;
  width: 37px;
  background-color: #f0f0f0;
  border-radius: 3px;
  border: solid 2px #646464;
}

/* On mouse-over, add a grey background color */

.container:hover input~.checkmark {
  background-color: #f0f0f0;
}

/* When the checkbox is checked, add a blue background */

.container input:checked~.checkmark {
  background-color: #f0f0f0;
}

/* Create the checkmark/indicator (hidden when not checked) */

.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */

.container input:checked~.checkmark:after {
  display: block;
}

/* Style the checkmark/indicator */

.container .checkmark:after {
  left: 13px;
  top: 7px;
  width: 8px;
  height: 15px;
  border: solid #333;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

input {
  width: 100%;
  height: 85px;
  font-family: HelveticaNeue;
  font-size: 36px;
 ...

JavaScript

var proxied = wFORMS.behaviors.validation.onPass;
   wFORMS.behaviors.validation.onPass = function() {
     var frm = document.getElementById("tfa_0");
     var checks = frm.getElementsByTagName('input');
     var str = "";
     for (var i = 0; i < checks.length; ++i) {
       if (checks[i].type == "checkbox" && checks[i].checked) {
         str += checks[i].value + ",";
       }
     }

     localStorage.setItem("checked_values", str);
     _satellite.track("subForm");

   };