Last active
December 11, 2015 03:39
-
-
Save sruli/4539799 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<form action="http://newsletter.arrondean.com/signups/subscribe/70507" method="post" id="mad_mimi_signup_form" target="_blank"> | |
<fieldset> | |
<div class="mimi_field text email required"> | |
<label for="signup_email">Email</label> | |
<input id="signup_email" name="signup[email]" type="text" placeholder="you@example.com" class="required"> | |
<div class="mimi_field_feedback"></div><span class="mimi_funk"></span> | |
</div> | |
<div class="mimi_field text"> | |
<label for="signup_name" id="wf_label">Name</label> | |
<input id="signup_name" name="signup[name]" type="text"> | |
<div class="mimi_field_feedback"></div><span class="mimi_funk"></span> | |
</div> | |
<div> | |
<label>PA North Pittsburgh:</label> | |
<select name='lists[]'> | |
<option value=''>Please select...</option> | |
<option value='646163'>Dino's Diner</option> | |
<option value='646164'>Pauls Power Tools</option> | |
<option value='646162'>Sandy's Sweat Shop</option> | |
<option value='646161'>Pizza Joes</option> | |
</select> | |
</div> | |
<div> | |
<label>OH Mahoning County:</label> | |
<select name='lists[]'> | |
<option value=''>Please select...</option> | |
<option value='646200'>TGI Fridays</option> | |
<option value='646197'>Tin's Tanning</option> | |
<option value='646196'>Obama's Firearms and More</option> | |
<option value='646195'>Sports Fanatics</option> | |
<option value='646198'>Subway</option> | |
</select> | |
</div> | |
<!--<div class="check"> | |
<input id="list_646160" name="lists[]" value="646160" type="checkbox" checked="checked"> | |
<label for="list_646160">PA North Pittsburgh</label> | |
<span class="mimi_field_feedback"></span><span class="mimi_funk"></span> | |
</div> | |
<div class="check"> | |
<input id="list_646194" name="lists[]" value="646194" type="checkbox" checked="checked"> | |
<label for="list_646194">OH Mahoning County</label> | |
<span class="mimi_field_feedback"></span><span class="mimi_funk"></span> | |
</div>--> | |
<div class="mimi_field action"> | |
<input id="webform_submit_button" value="Sign up!" type="submit" class="submit" data-default-text="Sign up!" data-submitting-text="Sending…" data-invalid-text="↑ You forgot some required fields"> | |
</div> | |
</fieldset> | |
</form> | |
<script type="text/javascript"> | |
(function() { | |
var form = document.getElementById("mad_mimi_signup_form"), | |
submit = document.getElementById("webform_submit_button"), | |
email = /.+@.+\..+/; | |
form.onsubmit = function(event) { | |
var isValid = validate(); | |
if(!isValid) { | |
for(var i = 0; i < form.elements.length; ++i) { | |
var input = form.elements; | |
if(input.className.indexOf("required") >= 0) { | |
input.onchange = validate; | |
} | |
} | |
return false; | |
} | |
if(form.getAttribute("target") != "_blank") { | |
form.className = "mimi_submitting"; | |
submit.value = submit.getAttribute("data-submitting-text"); | |
submit.disabled = true; | |
submit.className = "disabled"; | |
} | |
setTimeout(function() { | |
for(var i = 0; i < form.getElementsByTagName("input").length; ++i) { | |
var input = form.getElementsByTagName("input"); | |
if(input.getAttribute("type") == "text") { | |
input.value = ""; | |
} | |
if(input.id == "signup_email") { | |
input.placeholder = "you@example.com"; | |
} else { | |
input.placeholder = ""; | |
} | |
} | |
}, 3000); | |
}; | |
function validate() { | |
var isValid = true; | |
for(var i = 0; i < form.elements.length; ++i) { | |
var input = form.elements, | |
allDivs = input.parentNode.getElementsByTagName("div"); | |
if(input.className.indexOf("required") >= 0) { | |
if(input.id == "signup_email") { | |
if(!email.test(input.value)) { | |
emailErrorMessage(input, allDivs); | |
isValid = false; | |
} else { | |
removeErrorMessage(input, allDivs); | |
} | |
} else { | |
if((input.type == "checkbox" && !input.checked) || input.value == "" || input.value == "-1") { | |
fieldErrorMessage(input, allDivs); | |
isValid = false; | |
} else { | |
removeErrorMessage(input, allDivs); | |
} | |
} | |
} | |
} | |
form.className = isValid ? "" : "mimi_invalid"; | |
submit.value = isValid ? submit.getAttribute("data-default-text") : submit.getAttribute("data-invalid-text"); | |
submit.disabled = !isValid; | |
submit.className = isValid ? "submit" : "disabled"; | |
return isValid; | |
} | |
function emailErrorMessage(input, allDivs) { | |
if(input.getAttribute("data-webform-type") == "iframe") { | |
input.className = "required invalid"; | |
input.placeholder = input.getAttribute("data-required-message") || "This field is required"; | |
} else { | |
allDivs[0].innerHTML = input.getAttribute("data-invalid-message") || "This field is invalid"; | |
} | |
} | |
function fieldErrorMessage(input, allDivs) { | |
if(input.getAttribute("data-webform-type") == "iframe") { | |
input.className = "required invalid"; | |
input.placeholder = input.getAttribute("data-required-message") || "This field is required"; | |
} else { | |
for(var i = 0; i < allDivs.length; ++i) { | |
var element = allDivs; | |
if(element.className.indexOf("mimi_field_feedback") >= 0) { | |
return element.innerHTML = input.getAttribute("data-required-message") || "This field is required"; | |
} | |
} | |
} | |
} | |
function removeErrorMessage(input, allDivs) { | |
if(input.getAttribute("data-webform-type") == "iframe") { | |
input.className = "required"; | |
} | |
for(var i = 0; i < allDivs.length; ++i) { | |
var element = allDivs; | |
if(element.className.indexOf("mimi_field_feedback") >= 0) { | |
return element.innerHTML = ""; | |
} | |
} | |
} | |
})(); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment