Formulaire HTML avec deux boutons submit et deux “cibles” attributs
Salut j'ai un html <form>.
La forme n'a qu'un seul action=""
attribut.
Mais je souhaite avoir 2 différents target=""
attributs selon le bouton sur lequel vous cliquez pour soumettre le formulaire. C'est probablement un peu de fantaisie en javascript, mais je n'ai pas une idée de par où commencer.
Aucune idées de comment je pourrais créer deux boutons, chacun présenter la même forme, mais chaque bouton donne la forme d'une cible différente?
MERCI!
- Il y a un problème de convivialité ici: Ce qui se passe quand j'appuie sur "entrée" au lieu de cliquer sur un bouton? Vous allez avoir à annuler l'événement submit du formulaire, le plus probable.
- La forme devrait avoir un bouton "par défaut" si le formulaire est soumis, mais aucun des boutons ont été activés. La valeur par défaut doit être choisi à bon escient. Notez que le "hit enter' chose, c'est un navigateur spécifique extension uniquement et ne doit pas être invoqué, alors que tous les navigateurs sont capables d'activer un bouton spécifique.
- bon point merci
Vous devez vous connecter pour publier un commentaire.
Il est plus approprié d'aborder ce problème avec la mentalité que vous avez un défaut d'action liée à un bouton envoyer, puis une action de substitution lié à un simple bouton. La différence ici est que celui qui va en vertu de la soumission sera celui utilisé lorsqu'un utilisateur soumet le formulaire en appuyant sur enter, tandis que l'autre ne seront déclenché lorsqu'un consentement explicite de l'utilisateur clique sur le bouton.
De toute façon, avec cela à l'esprit, cela devrait le faire:
Avec ce javascript:
Approches qui se lient code de la soumettre événement click du bouton ne fonctionne pas sur IE.
<input type="submit" formaction="action2.php" value="Other Action"></input>
Je le fais sur le côté serveur.
Qui est, la forme toujours soumet à la même cible, mais j'ai un script côté serveur qui est en charge de la redirection vers l'emplacement approprié en fonction de ce bouton a été pressé.
Si vous avez plusieurs boutons, comme
Alors vous pouvez facilement déterminer quel bouton a été pressé - si la variable
retry
existe et a une valeur, puis réessayez a été pressé, et si la variableabort
existe et a une valeur alors abandonner a été pressé. Cette connaissance peut alors être utilisée pour rediriger vers l'endroit approprié.Cette méthode n'a pas besoin de Javascript.
redirecting to the appropriate location
work for POST too
? Assumming que l'emplacement est l'une url je pense que toutes les données est parti... je dois être oublié quelque chose ou quelqu'un aurais mentionné que, dans les 7 dernières années... Est-ce @Andrew signifie?Dans le cas où vous êtes jusqu'à HTML5, vous pouvez simplement utiliser l'attribut
formaction
. Cela vous permet d'avoir une forme différenteaction
pour chaque bouton.Cela fonctionne pour moi:
Dans cet exemple, pris dans
http://www.webdeveloper.com/forum/showthread.php?t=75170
Vous pouvez voir la façon de changer la cible sur le bouton de l'événement OnClick.
Exemple:
Le tour est joué.
Très "chics", trois mots le JavaScript!
Simple et facile à comprendre, cela enverra le nom du bouton qui a été cliqué, puis bifurquer à faire ce que vous voulez. Cela peut réduire la nécessité pour les deux cibles. Moins de pages...!
twosubmits.php
Voici un petit exemple de script qui affiche un formulaire qui change le type de cible:
HTML:
JS:
http://jsfiddle.net/arzo/unhc3/
explicitOriginalTarget
est un mozilla extension spécifiqueC'est faisable sur le côté serveur.
et dans mon nœud de script côté serveur
Sur chacun de vos boutons, vous pourriez avoir la suite;
Alors quelques petites js fonctions;
Cela devrait faire l'affaire.
Avoir les deux boutons de soumettre à la page en cours, puis ajoutez ce code en haut:
Il pourrait également être fait à l'aide de $_SESSION si vous ne voulez pas qu'ils voient les variables.
De Solutions De Rechange. Ne pas les obtenir foiré avec onclick,boutons,côté serveur et tous.Il suffit de créer un nouveau formulaire avec autre action de ce genre.
Maintenant en Javascript, vous pouvez obtenir tous les éléments de formulaire principal en v() avec l'aide de getElementsByTagName(). Pour savoir si la case est cochée ou non
Cela peut aider quelqu'un:
Utiliser l'attribut formtarget