normalement quand je suis sur le submit je ne suis plus dans la condition donc mon action s'exécuterait comme normalement et devrait soumettre; ben non, là est mon erreur
je peux demander pourquoi l'autre solution (celle que j'ai codé) ne fonctionne pas?
Bien sûr! J'aurais même dû le préciser dans mon message précédent.
event.target retourne l'objet sur lequel l'évènement a lieu. Or, tu essayes de comparer cet objet à une chaîne de caractère. Donc ça ne fonctionne pas!
De mon côté, event.target.type renvoie 'submit' au format string que je peux donc comparer à une chaîne de caractère.
puis-je demander autre chôse plutôt que d'ouvrir un sujet ?
J'ai créé un formulaire, qui quand il est soumis lance une fonction de contrôle des informations remplis, tels que le nombre de caractère, la validation des options, etc ...
j'ai donc une fonction qui fait tout ça et qui me retourne toutes les erreurs si il y en a
exemple:
le titre n'est pas correct,
l'option n'est pas choisi
j'ai créé une div qui est inséré avant le formulaire, mais si le formulaire est soumis une seconde fois avec une ou des erreurs, j'ai une seconde div et non un remplacement de la 1ère div , ce qui est normal, mais pas l'action que je voudrais!
serait-il possible d'être éclairé?
mon code est:
form.addEventListener('submit', (event) =>{
checkForm();
if(checkForm().length>0){
event.preventDefault();
var divErr = document.createElement("div");
divErr.id = 'erreur';
var list = document.createElement("ul");
divErr.append(list);
var form = document.getElementById('new');
var parent = document.getElementById('new').parentElement;
parent.insertBefore(divErr, form);
for (i = 0; i<checkForm().length; i++){
var detailList = document.createElement("li");
list.appendChild(detailList);
detailList.appendChild(document.createTextNode(checkForm()[i]));
}
}
})
Il faudrait que dans ta fonction, tu supprimes le contenu de ta liste ul avant d'arriver dans ta boucle for. Pour ça, il faut également que tu crées tes éléments une seule et unique fois.
form.addEventListener('submit', (event) =>{
checkForm();
if(checkForm().length>0){
event.preventDefault();
// if (je n'ai pas déjà une div d'id erreur)
var divErr = document.createElement("div");
divErr.id = 'erreur';
var list = document.createElement("ul");
divErr.append(list);
var form = document.getElementById('new');
var parent = document.getElementById('new').parentElement;
parent.insertBefore(divErr, form);
// reset du contenu de ma liste list
for (i = 0; i<checkForm().length; i++){
var detailList = document.createElement("li");
list.appendChild(detailList);
detailList.appendChild(document.createTextNode(checkForm()[i]));
}
}
})
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
lesjoiesducode / Les points-virgules en JavaScript
lesjoiesducode / Les points-virgules en JavaScript
lesjoiesducode / Les points-virgules en JavaScript