(function() {
var form = document.getElementById("mad_mimi_signup_form"),
submit = form.getElementsByTagName("button")[0],
email = /.+@.+\..+/;
form.onsubmit = function(event) {
var isValid = validate();
if(!isValid) {
for(var i = 0; i < form.elements.length; ++i) {
var input = form.elements[i]
if(input.className.indexOf("required") >= 0) {
input.onchange = validate;
}
}
return false;
}
form.className = "mimi_submitting";
submit.getElementsByTagName("span")[0].innerHTML = submit.getAttribute("data-submitting-text");
submit.disabled = true;
submit.className = "disabled";
}
function validate() {
var isValid = true;
for(var i = 0, l = form.elements.length; i < l; ++i) {
var input = form.elements[i],
allDivs = input.parentNode.getElementsByTagName("div");
if(input.className.indexOf("required") >= 0) {
if((input.type == "checkbox" && !input.checked) || input.value == "" || input.value == "-1") {
validationErrorMessage(input, allDivs);
isValid = false;
} else {
removeFieldErrorMessage(allDivs);
}
if(input.id == 'signup_email') {
if (!email.test(input.value)) {
input.parentNode.getElementsByTagName("div")[0].innerHTML = input.getAttribute("data-invalid-message") || "This field is invalid";
isValid = false;
}
}
}
}
form.className = isValid ? "" : "mimi_invalid";
submit.getElementsByTagName("span")[0].innerHTML = isValid ? submit.getAttribute("data-default-text") : submit.getAttribute("data-invalid-text");
submit.disabled = !isValid;
submit.className = isValid ? "submit" : "disabled";
return isValid;
}
function validationErrorMessage(input, allDivs) {
for(var i = 0; i < allDivs.length; ++i) {
var element = allDivs[i]
if(element.className.indexOf("mimi_field_feedback") >= 0) {
return element.innerHTML = input.getAttribute("data-required-message") || "This field is required";
}
}
}
function removeFieldErrorMessage(allDivs) {
for(var i = 0; i < allDivs.length; ++i) {
var element = allDivs[i]
if(element.className.indexOf("mimi_field_feedback") >= 0) {
return element.innerHTML = "";
}
}
}
})();
Comments
Post a Comment