11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'ai une question toute bête…

J'utilise la fonction confirm() comme ceci:
function confirmGo(message,url) {
	if (confirm(message)) {
		window.location = url;
	}
}

Cette fonction est appelée au submit d'un formulaire, pour que l'utilisateur confirme vraiment sa soumission.
<input type="submit" value="Envoyer" name="valid_fiche" onclick="confirmGo('Voulez-vous valider cette fiche?','');" />


La validation de cette alerte fonctionne; en revanche, l'annulation recharge la page et efface les données entrées dans le formulaire…

Comment faire pour que le clic sur "Annuler" (ou la touche esc) laisse l'utilisateur sur la page tout en conservant les données qu'il a saisies? Smiley sweatdrop
Modifié par speedlab (15 Sep 2010 - 22:35)
Salut,

Je pense qu'il serait pas mal d'ajouter un return false comme suit. Ca éviterait le rechargement de la page je pense.
Et personnellement j'aurai appelé la fonction dans le onsubmit du form.

function confirmGo(message,url) { 
    if (confirm(message)) { 
        window.location = url; 
    }   else   {
        return false;
    } 
}

Modifié par JuJu57 (15 Sep 2010 - 22:05)
Hello,
Ton code ne fonctionne pas, la page se recharge quand même, donc l'utilisateur perd toutes ses données… Pourtant oui, ton idée paraissait bonne Smiley decu
Oui, en faisant
<form method="post" action="fiche.php" enctype="application/x-www-form-urlencoded" onsubmit="confirmGo('Voulez-vous valider cette fiche? Elle sera considérée comme finalisée.','?a=s&amp;idUtilisateur=1')">


Je précise (sait-on jamais) que les données entrées par l'utilisateur sont des boutons radio. Lorsque j'annule mon confirm(), les boutons radio sont tous remis à vierge.

Je ne sais pas comment faire pour cette histoire d'Annuler

J'ai remarqué un truc étrange: si je confirme, je ne récupère pas $_GET[a], j'ai du mal à comprendre…
Modifié par speedlab (15 Sep 2010 - 22:30)
J'essaye de t'aider, mais avec des fragments de code c'est pas évident.
Ton $_GET['a'] je vois pas d'ou tu peux le récupérer, ton form est en POST. Smiley rolleyes

Dans ton onsubmit essaye de mettre ça :

<form method="post" action="fiche.php" enctype="application/x-www-form-urlencoded" onsubmit="return confirmGo('Voulez-vous valider cette fiche? Elle sera considérée comme finalisée.','?a=s&amp;idUtilisateur=1');"> 

Modifié par JuJu57 (15 Sep 2010 - 22:34)
Ok, je clôture ce topic…
J'avais une requête à la c*n qui vidait le value des boutons radio

La honte! Smiley confused

En tous cas merci Juju57 pour ta précision sur le return false
Modifié par speedlab (15 Sep 2010 - 22:36)