This solution adds a maxlength attribute to textboxes. It also adds a countdown to the textbox showing the user how many characters are allowd / remaining. This does not work for password Textboxes! To make this work you need:
-
Add a class to the Text Box you want to limit like this:
maxlength_[the number you want to limit the textbox to]
for example: maxlength_20 will limit the textbox to 20 characters -
Add a Javascript action into the Page.Load event with the following script
let textBoxContainers = document.querySelectorAll(".text-box-container");
for (let i = 0; i < textBoxContainers.length; i++) {
let el = textBoxContainers[i];
if (el.hasAttribute("class") && el.getAttribute("class").indexOf("maxlength_") > -1) {
let elClasses = el.classList;
for (let c = 0; c < elClasses.length; c++) {
if (elClasses[c].indexOf("maxlength_") > -1) {
let maxlength = elClasses[c].split("_")[1];
let input = el.querySelector(".text-box-input");
input.setAttribute("maxlength", maxlength);
let chremaining = document.createElement("div");
chremaining.classList.add("chremaining");
chremaining.innerHTML = maxlength + " remaining";
el.appendChild(chremaining);
input.addEventListener("keyup", function (e) {
let myInput = e.target;
let count = parseInt(myInput.getAttribute("maxlength")) - myInput.value.length;
myInput.parentElement.querySelector(".chremaining").innerHTML = count + " remaining";
});
}
}
}
}
- Paste the CSS below into your StyleSheet to style the countdown element (if you don’t have a stylesheet in your Application Explorer, you need to enable it in the Application Properties)
.chremaining {
/*this positions the countdown label top right of the textbox*/
position:absolute;
top: 0;
right: 18px;
/*font colour*/
color:#cccccc;
font-size:11px;
}
The result:
