J'ai une tâche simple à accomplir ! Je veux que lorsque je soumets un formulaire et que j'obtiens un message de succès ou d'erreur du formulaire, j'aille directement au formulaire (en utilisant des ancres), donc pour ce faire, j'ai ajouté un paramètre dans l'URL de mon action from, comme ceci :
action="%%url%%?form-submitted=true"
Et lorsque le formulaire est soumis, j'ai écrit ce code :
// This script is for moving the page to the form is the page is loaded by submitting the form
let pageUrl = window.location.href;
let url = new URL(pageUrl);
let formSubmitted = url.searchParams.get("form-submitted");
if(formSubmitted){
window.location.href = "#form-container";
}
Le code fonctionne parfaitement, je me déplace vers mon formulaire lorsque je soumets le formulaire, mais si je fais défiler la page et que je vérifie le diaporama par exemple, et que je décide de rafraîchir la page, le paramètre formulaire-soumis est dans l'URL, donc lorsque je rafraîchis, je vais à nouveau vers le formulaire, ce qui n'est pas agréable.
Pour résoudre ce problème, je dois supprimer le paramètre de requête de l'URL sans rafraîchir la page :
// This script is for moving the page to the form is the page is loaded by submitting the form
let pageUrl = window.location.href;
let url = new URL(pageUrl);
let formSubmitted = url.searchParams.get("form-submitted");
history.pushstate({}, null, '');
if(formSubmitted){
window.location.href = "#form-container";
}
Je m'attendais à ce que mon domaine et la balise d'ancrage soient conservés, mais il semble que rien ne se passe.