You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
WF-Website/script/changeData.js

56 lines
1.9 KiB

function editField(id) {
// Récupérer l'élément <p> via son identifiant
var pElement = document.getElementById(id);
// Obtenir le texte actuel du <p>
var currentValue = pElement.textContent.trim();
// Créer un champ de saisie <input> avec la valeur actuelle
var input = document.createElement('input');
input.type = 'text';
input.value = currentValue
input.class = 'changeValue';
// Sauvegarde lors de la perte de focus
input.setAttribute('onblur', 'saveField("' + id + '", this.value)');
// Remplacer le <p> par le champ <input>
pElement.innerHTML = '';
pElement.appendChild(input);
// Mettre le focus sur le champ de saisie
input.focus();
}
//Sauvegarder les changements sur la vue
function saveField(id, newValue) {
if (id === 'email') {
if (!validateEmail(newValue)) {
alert('Adresse email invalide. Veuillez entrer un email valide.');
document.getElementById(id).querySelector('input').focus();
return; // Ne pas sauvegarder si l'email n'est pas valide
}
}
if (id === 'username') {
if (newValue.trim() === "") {
alert('Le nom d\'utilisateur ne peut pas être vide.');
document.getElementById(id).querySelector('input').focus();
return; // Ne pas sauvegarder si le nom d'utilisateur est vide
}
}
// Récupérer l'élément <p> via son identifiant
var pElement = document.getElementById(id);
// Mettre à jour la valeur avec la nouvelle saisie
pElement.innerHTML = '<strong>' + newValue + ' <img class="imgModify" src="../images/modify.svg" onclick="editField(\'' + id + '\')"/></strong>';
}
//Email valide
function validateEmail(email) {
// Regex pour vérifier le format de l'email
var re = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
return re.test(String(email).toLowerCase());
}