DarkLane
Vendredi 8 Novembre 2024 18:51:02
50 Vues
0 Commentaires
// Paramètres pour chaque champ par ID : const fields = { title: { max: 140, errorMessage: "Nombre de caractères du titre dépassé (maximum 140)" }, alt_name: { max: 15, errorMessage: "Nombre de caractères de l'URL dépassé (maximum 15)" }, short_story: { max: 3000, errorMessage: "Nombre de caractères de l'histoire courte dépassé (maximum 3000)" }, full_story: { max: 6000, errorMessage: "Nombre de caractères de l'histoire complète dépassé (maximum 6000)" } };
<style> .error-message {color: red; font-weight: bold; font-size: 0.9em; margin-left: 10px;} .character-counter {margin-left: 10px;} </style> <script> // Настройки для каждого поля по ID: const fields = { title: { max: 140, errorMessage: "Превышено кол-во символов заголовка (максимум 140)" }, alt_name: { max: 15, errorMessage: "Превышено кол-во символов URL (максимум 15)" }, short_story: { max: 3000, errorMessage: "Превышено кол-во символов заголовка (максимум 3000)" }, full_story: { max: 6000, errorMessage: "Превышено кол-во символов заголовка (максимум 6000)" } }; function initializeFields() { Object.keys(fields).forEach(fieldId => { const field = document.getElementById(fieldId); const { max, errorMessage } = fields[fieldId]; field.setAttribute("maxlength", max); const errorElement = document.createElement("span"); errorElement.id = `${fieldId}-error`; errorElement.className = "error-message"; errorElement.style.display = "none"; errorElement.textContent = errorMessage; field.insertAdjacentElement("afterend", errorElement); const counterElement = document.createElement("span"); counterElement.id = `${fieldId}-counter`; counterElement.className = "character-counter"; counterElement.style.display = "block"; counterElement.textContent = `Caractères: 0 sur ${max}`; errorElement.insertAdjacentElement("afterend", counterElement); field.addEventListener("input", checkInputLength); }); } function checkInputLength(event) { const input = event.target; const fieldId = input.id; const { max, errorMessage } = fields[fieldId]; const errorElement = document.getElementById(`${fieldId}-error`); const counterElement = document.getElementById(`${fieldId}-counter`); const currentLength = input.value.length; // Обновляем текст счётчика символов counterElement.textContent = `Caractères: ${currentLength} sur ${max}`; if (currentLength === max) { errorElement.textContent = errorMessage; errorElement.style.display = "inline"; } else { errorElement.style.display = "none"; } } initializeFields(); </script>
Votre adresse électronique ne sera pas publiée. Les champs obligatoires sont marqués *
Les utilisateurs du Invités ne sont pas autorisés à ajouter des commentaires à cette publication.
25-07-2022 • Dle
Conserver le texte dans le
12-02-2022 • Dle
Affichage du nombre de MP non
24-05-2021 • Dle
Changez le lien vers le
12-08-2023 • Dle
CopyCode : copier le contenu
17-06-2023 • Dle 16.1
Nom du fichier importé (pièce
27-10-2020 • Dle
chargement des pages comme