function waitForElm(selector) { return new Promise((resolve) => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver((mutations) => { if (document.querySelector(selector)) { resolve(document.querySelector(selector)); observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true, }); }); } const makeFieldInputRequired = (fieldName) => { try { if ($("#" + fieldName) !== undefined) { $("#" + fieldName).prop("required", true); $("#" + fieldName) .closest(".control") .prev() .addClass("required"); createValidator(fieldName); } } catch (error) { console.error(error); } }; const removeFieldInputRequired = (fieldName) => { try { if ($("#" + fieldName) !== undefined) { $("#" + fieldName).prop("required", false); $("#" + fieldName) .closest(".control") .prev() .removeClass("required"); for (let i = 0; i < Page_Validators.length; i++) { const element = Page_Validators[i]; if (`${fieldName}Validator` === element.id) { Page_Validators.splice(i, 1); break; } } } } catch (error) { console.error(error); } }; const createValidator = (fieldName) => { // Create new validator let Requiredvalidator = document.createElement("span"); Requiredvalidator.style.display = "none"; Requiredvalidator.href == `#${fieldName}_label`; Requiredvalidator.id = fieldName + "Validator"; Requiredvalidator.controltovalidate = fieldName; Requiredvalidator.errormessage = `${$( "#" + fieldName + "_label" ).html()}: Required field must be filled in. `; Requiredvalidator.initialvalue = ""; Requiredvalidator.evaluationfunction = function () { let value = $("#" + fieldName).val(); if (value == null || value == "") { return false; } else { return true; } }; // Add the new validator to the page validators array: Page_Validators.push(Requiredvalidator); };