I have a problem with my program because I have buttons which work with a prompt() but when I refresh my page, it’s like the prompt work also because the box appears before I can access my page.(it’s a french program)
Here the JS field:
// Tableau pour stocker les éléments
var elements = [];
// Fonction pour afficher la liste d'éléments
function afficherListe() {
var listeDiv = document.getElementById("liste");
listeDiv.innerHTML = "";
for (var i = 0; i < elements.length; i++) {
var elementDiv = document.createElement("div");
elementDiv.textContent = elements[i];
listeDiv.appendChild(elementDiv);
}
}
// Fonction pour ajouter un élément à la liste
function ajouterElement() {
var nouvelElement = prompt("Entrez un nouvel élément :");
if (nouvelElement) {
elements.push(nouvelElement);
afficherListe();
}
}
// Fonction pour modifier un élément existant dans la liste
function modifierElement() {
var ancienneValeur = prompt("Entrez la valeur à modifier :");
var index = elements.indexOf(ancienneValeur);
if (index !== -1) {
var nouvelElement = prompt("Entrez la nouvelle valeur de l'élément :");
if (nouvelElement !== null) {
elements[index] = nouvelElement;
afficherListe();
}
} else {
alert("L'élément avec la valeur spécifiée n'a pas été trouvé dans la liste.");
}
}
// Fonction pour supprimer un élément de la liste
function supprimerElement() {
var supValeur = prompt("Entrez la valeur de l'élément à supprimer :");
var index = elements.indexOf(supValeur);
if (index !== -1) {
elements.splice(index, 1);
afficherListe();
}
}
2
Answers
Your
<script>
tags are executing your functionsajouterElement, modifierElement,
andsupprimerElement
when your page is loaded. If you remove these from thescript
tags, then they will only be invoked when youronclick
events fire.You only want the prompts when the buttons are clicked
Here is a version using delegation instead of inline event handling.