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");
};