Skip to content

Instantly share code, notes, and snippets.

@swedishborgie
Created October 19, 2018 12:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save swedishborgie/745c4263416b3be55871b81fd1cf715c to your computer and use it in GitHub Desktop.
Save swedishborgie/745c4263416b3be55871b81fd1cf715c to your computer and use it in GitHub Desktop.
Helper function to re-calculate input styles for Material Design Lite
function fixMdlFields(element, validate) {
element.querySelectorAll("input, textarea").forEach((el) => {
let parentClasses = el.parentNode.classList;
if (el.disabled) {
parentClasses.add("is-disabled");
} else {
parentClasses.remove("is-disabled");
}
if (el.readOnly) {
parentClasses.add("is-readonly");
} else {
parentClasses.remove("is-readonly");
}
if (validate && !el.validity.valid) {
parentClasses.add("is-invalid");
} else {
parentClasses.remove("is-invalid");
}
});
element.querySelectorAll("input[type=\"text\"], input[type=\"password\"], input[type=\"email\"], textarea").forEach((el) => {
let parentClasses = el.parentNode.classList;
if (el.value !== "") {
parentClasses.add("is-dirty");
} else {
parentClasses.remove("is-dirty");
}
if (el.readOnly) {
parentClasses.add("is-readonly");
} else {
parentClasses.remove("is-readonly");
}
});
element.querySelectorAll("input[type=\"checkbox\"]").forEach((el) => {
let parentClasses = el.parentNode.classList;
if (el.checked) {
parentClasses.add("is-checked");
} else {
parentClasses.remove("is-checked");
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment