49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
var password_fields = document.getElementsByClassName("password");
|
|
var password_toggle_buttons = [];
|
|
|
|
for (let i = 0; i < password_fields.length; i++) {
|
|
try {
|
|
password_fields.item(i).type = "password"; // ie8 fails here
|
|
|
|
password_toggle_buttons.push(document.createElement("button"));
|
|
password_toggle_buttons[i].setAttribute(
|
|
"style",
|
|
"position: relative; top: -38px; right: 2px; float: right; padding: 6px 14px; height: 36px; border: 0"
|
|
);
|
|
password_toggle_buttons[i].setAttribute(
|
|
"class",
|
|
"tertiary no-text button"
|
|
);
|
|
password_toggle_buttons[i].onclick = function () {
|
|
showPass(password_fields.item(i).id);
|
|
};
|
|
password_toggle_buttons[i].type = "button";
|
|
|
|
var me = document.querySelector("script[data-type='password']");
|
|
var icons = me.getAttribute("data-icons");
|
|
var alt = me.getAttribute("data-alt");
|
|
|
|
var img = document.createElement("img");
|
|
img.setAttribute("src", icons + "/reveal.png");
|
|
img.setAttribute("alt", alt);
|
|
|
|
password_toggle_buttons[i].appendChild(img);
|
|
password_fields
|
|
.item(i)
|
|
.insertAdjacentElement("afterend", password_toggle_buttons[i]);
|
|
} catch (e) {
|
|
window.console.log(e);
|
|
window.console.log("Browser doesn't support modifying the type of input.");
|
|
window.console.log("Password field left visible.");
|
|
}
|
|
}
|
|
|
|
function showPass(field_id) {
|
|
var password_field = document.getElementById(field_id);
|
|
if (password_field.type === "password") {
|
|
password_field.type = "text";
|
|
} else {
|
|
password_field.type = "password";
|
|
}
|
|
}
|