Je le fais côté serveur. En d'autres termes, le formulaire est toujours soumis à la même cible, mais j'ai un script côté serveur qui est responsable de la redirection vers l'emplacement approprié en fonction du bouton enfoncé.
Si vous avez plusieurs boutons, comme
<form action="mypage" method="get">
<input type="submit" name="retry" value="Retry" />
<input type="submit" name="abort" value="Abort" />
</form>
Note: J'utilise GET, mais il fonctionne pour POST trop
Ensuite, vous pouvez facilement déterminer quel bouton a été pressé - si la variable retry
existe et a une valeur, alors une nouvelle tentative a été effectuée, et si la variable abort
existe et a une valeur, alors abort a été pressé. Cette connaissance peut ensuite être utilisée pour rediriger vers l'endroit approprié.
Cette méthode n'a pas besoin de Javascript.
Note: que certains navigateurs sont capables de soumettre un formulaire sans appuyer sur les boutons (en appuyant sur Entrée). Non standard comme c'est, vous devez en tenir compte, en ayant une action claire default
et activant que chaque fois que vous n'appuyez sur aucun bouton. En d'autres termes, assurez-vous que votre formulaire ne quelque chose de sensé (que ce soit afficher un message d'erreur utile ou en supposant une valeur par défaut) lorsque quelqu'un visites entrent dans un élément de forme différente au lieu de cliquer sur un bouton d'envoi , plutôt que de simplement casser .
Il y a un problème d'utilisabilité ici: Qu'est-ce que arrive quand j'appuie sur 'enter' au lieu de clickin g un bouton? Vous allez devoir annuler l'événement de soumission du formulaire, très probablement. –
Le formulaire devrait avoir un bouton qui est le «défaut» si le formulaire est soumis, mais aucun des boutons ont été activés. La valeur par défaut doit être choisie judicieusement. Notez que le truc 'hit enter' est uniquement une extension spécifique au navigateur et ne devrait pas être utilisé, alors que tous les navigateurs sont capables d'activer un bouton spécifique. – thomasrutter
bon point merci – Stoob