comment empêcher la touche entrée d'envoyer un formulaire ?
11 réponses
PERSONAL COMPUTERS \(J.C.SAMUEL\)
Bonjour à tous,
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par
défaut dans un formulaire et donc d'imoser le clic pour l'envoi du
formulaire.
Comment faire cela ?
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit'
employé, s'il y en a plusieurs, de nom différents ?
Essai de capturer l'evenement onKeydown peut etre, et redirige la touche entrer.
Voila le début du code pour caputrer l'evenement onkeydown. Il faut voir si l'interception et la redirection annule bien l'effet entrer sur un formulaire.
function GetKey(e) { if (Nav=="Net") Key = e.which; else Key = window.event.keyCode; // il faut rechercher CopdeToucheEnter, je me rappelle plus lequel c'est. Par exempleje sais que shift c 16 et ctrl c 17 mais entrer je sais plus. if (Key==CodeToucheEnter) faire quelque chose d'autre; }
A voir?
Peut etre une piste
</script>
"PERSONAL COMPUTERS (J.C.SAMUEL)" a écrit dans le message de news:41233ce5$0$318$
Bonjour à tous,
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par défaut dans un formulaire et donc d'imoser le clic pour l'envoi du formulaire. Comment faire cela ?
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit' employé, s'il y en a plusieurs, de nom différents ?
Merci de votre aide.
Jc Samuel
Essai de capturer l'evenement onKeydown peut etre, et redirige la touche
entrer.
Voila le début du code pour caputrer l'evenement onkeydown. Il faut voir si
l'interception et la redirection annule bien l'effet entrer sur un
formulaire.
function GetKey(e)
{
if (Nav=="Net")
Key = e.which;
else
Key = window.event.keyCode;
// il faut rechercher CopdeToucheEnter, je me rappelle plus lequel c'est.
Par exempleje sais que shift c 16 et ctrl c 17 mais entrer je sais plus.
if (Key==CodeToucheEnter) faire quelque chose d'autre;
}
A voir?
Peut etre une piste
</script>
"PERSONAL COMPUTERS (J.C.SAMUEL)" <personal.computers@skynet.be> a écrit
dans le message de news:41233ce5$0$318$ba620e4c@news.skynet.be...
Bonjour à tous,
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par
défaut dans un formulaire et donc d'imoser le clic pour l'envoi du
formulaire.
Comment faire cela ?
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit'
employé, s'il y en a plusieurs, de nom différents ?
Essai de capturer l'evenement onKeydown peut etre, et redirige la touche entrer.
Voila le début du code pour caputrer l'evenement onkeydown. Il faut voir si l'interception et la redirection annule bien l'effet entrer sur un formulaire.
function GetKey(e) { if (Nav=="Net") Key = e.which; else Key = window.event.keyCode; // il faut rechercher CopdeToucheEnter, je me rappelle plus lequel c'est. Par exempleje sais que shift c 16 et ctrl c 17 mais entrer je sais plus. if (Key==CodeToucheEnter) faire quelque chose d'autre; }
A voir?
Peut etre une piste
</script>
"PERSONAL COMPUTERS (J.C.SAMUEL)" a écrit dans le message de news:41233ce5$0$318$
Bonjour à tous,
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par défaut dans un formulaire et donc d'imoser le clic pour l'envoi du formulaire. Comment faire cela ?
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit' employé, s'il y en a plusieurs, de nom différents ?
Merci de votre aide.
Jc Samuel
Saad Saad
Salut,
Suffit de remplacer
<input type="submit"...
par
<input type="button"
auquel tu donne l'évenement suivant :
onclick="this.form.submit();"
-- Saad Saad
PERSONAL COMPUTERS (J.C.SAMUEL) wrote:
Bonjour à tous,
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par défaut dans un formulaire et donc d'imoser le clic pour l'envoi du formulaire. Comment faire cela ?
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit' employé, s'il y en a plusieurs, de nom différents ?
Merci de votre aide.
Jc Samuel
Salut,
Suffit de remplacer
<input type="submit"...
par
<input type="button"
auquel tu donne l'évenement suivant :
onclick="this.form.submit();"
--
Saad Saad
PERSONAL COMPUTERS (J.C.SAMUEL) wrote:
Bonjour à tous,
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par
défaut dans un formulaire et donc d'imoser le clic pour l'envoi du
formulaire.
Comment faire cela ?
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit'
employé, s'il y en a plusieurs, de nom différents ?
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par défaut dans un formulaire et donc d'imoser le clic pour l'envoi du formulaire. Comment faire cela ?
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit' employé, s'il y en a plusieurs, de nom différents ?
Merci de votre aide.
Jc Samuel
PERSONAL COMPUTERS (J.C.SAMUEL) wrote:
Bonjour à tous,
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par défaut dans un formulaire et donc d'imoser le clic pour l'envoi du formulaire. Comment faire cela ?
Salut,
Suffit de remplacer
<input type="submit"...
Ah ? Tiens, c'est nouveau ça comme non-astuce !
quand on sait qu'un formulaire peut être envoyé sans aucun bouton ... (donc par la touche Entree)
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit' employé, s'il y en a plusieurs, de nom différents ?
??? (à mon idée) il ne peut il y avoir qu'un seul submit par formulaire ...
mais il est possible d'avoir plusieurs boutons pour soumettre des formulaires inclus dans la même page
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par
défaut dans un formulaire et donc d'imoser le clic pour l'envoi du
formulaire.
Comment faire cela ?
Salut,
Suffit de remplacer
<input type="submit"...
Ah ?
Tiens, c'est nouveau ça comme non-astuce !
quand on sait qu'un formulaire peut être envoyé sans aucun bouton ...
(donc par la touche Entree)
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit'
employé, s'il y en a plusieurs, de nom différents ?
???
(à mon idée)
il ne peut il y avoir qu'un seul submit par formulaire ...
mais il est possible d'avoir plusieurs boutons pour soumettre
des formulaires inclus dans la même page
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par défaut dans un formulaire et donc d'imoser le clic pour l'envoi du formulaire. Comment faire cela ?
Salut,
Suffit de remplacer
<input type="submit"...
Ah ? Tiens, c'est nouveau ça comme non-astuce !
quand on sait qu'un formulaire peut être envoyé sans aucun bouton ... (donc par la touche Entree)
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit' employé, s'il y en a plusieurs, de nom différents ?
??? (à mon idée) il ne peut il y avoir qu'un seul submit par formulaire ...
mais il est possible d'avoir plusieurs boutons pour soumettre des formulaires inclus dans la même page
(à mon idée) il ne peut il y avoir qu'un seul submit par formulaire ...
En fait, HTML4 permet autant de boutons SUBMIT que nécessaire, et cela permet de différencier l'action à mener sur le formulaire en fonction du bouton pressé (seul le bouton submit "successful" est envoyé vers le serveur) et non d'un autre élément du formulaire (comme une checkbox, par exemple) ou d'une dépendance javascript (document.forms["monform"].submit() échoue dans tous les browsers ayant javascript désactivé, c'est presque du déni de service en dehors d'intranets:-)).
Un exemple intéressant est le formulaire de "post" de Google pour les groupes UseNet; Google a créé deux boutons: le premier bouton est "Preview", qui permet de visualiser le post, et le second est "Post", qui permet de l'envoyer.
Pour relier à la problématique du [enter], c'est le premier bouton submit qui est pressé avec le [enter], il peut donc être utilisé comme "dummy" ou comme fonctionnalité "sans écriture" (le presser ne porte pas préjudice à l'utilisateur).
La touche [enter] permet de soumettre le formulaire, mais ce comportement est différent suivant les navigateurs; une possibilité pour empêcher ce comportement est de capturer la touche [enter] sur la textbox fautive.
(à mon idée)
il ne peut il y avoir qu'un seul submit par formulaire ...
En fait, HTML4 permet autant de boutons SUBMIT que nécessaire, et cela
permet de différencier l'action à mener sur le formulaire en fonction du
bouton pressé (seul le bouton submit "successful" est envoyé vers le
serveur) et non d'un autre élément du formulaire (comme une checkbox,
par exemple) ou d'une dépendance javascript
(document.forms["monform"].submit() échoue dans tous les browsers ayant
javascript désactivé, c'est presque du déni de service en dehors
d'intranets:-)).
Un exemple intéressant est le formulaire de "post" de Google pour les
groupes UseNet; Google a créé deux boutons: le premier bouton est
"Preview", qui permet de visualiser le post, et le second est "Post",
qui permet de l'envoyer.
Pour relier à la problématique du [enter], c'est le premier bouton
submit qui est pressé avec le [enter], il peut donc être utilisé comme
"dummy" ou comme fonctionnalité "sans écriture" (le presser ne porte pas
préjudice à l'utilisateur).
La touche [enter] permet de soumettre le formulaire, mais ce
comportement est différent suivant les navigateurs; une possibilité pour
empêcher ce comportement est de capturer la touche [enter] sur la
textbox fautive.
(à mon idée) il ne peut il y avoir qu'un seul submit par formulaire ...
En fait, HTML4 permet autant de boutons SUBMIT que nécessaire, et cela permet de différencier l'action à mener sur le formulaire en fonction du bouton pressé (seul le bouton submit "successful" est envoyé vers le serveur) et non d'un autre élément du formulaire (comme une checkbox, par exemple) ou d'une dépendance javascript (document.forms["monform"].submit() échoue dans tous les browsers ayant javascript désactivé, c'est presque du déni de service en dehors d'intranets:-)).
Un exemple intéressant est le formulaire de "post" de Google pour les groupes UseNet; Google a créé deux boutons: le premier bouton est "Preview", qui permet de visualiser le post, et le second est "Post", qui permet de l'envoyer.
Pour relier à la problématique du [enter], c'est le premier bouton submit qui est pressé avec le [enter], il peut donc être utilisé comme "dummy" ou comme fonctionnalité "sans écriture" (le presser ne porte pas préjudice à l'utilisateur).
La touche [enter] permet de soumettre le formulaire, mais ce comportement est différent suivant les navigateurs; une possibilité pour empêcher ce comportement est de capturer la touche [enter] sur la textbox fautive.
Ou est le problème, si il n'y à pas de button Submit ET si il y a plus d'une zone de texte (<input type="text">) mon astuce fonctionne parfaitement
-- Saad Saad
@SM wrote:
PERSONAL COMPUTERS (J.C.SAMUEL) wrote:
Bonjour à tous,
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par défaut dans un formulaire et donc d'imoser le clic pour l'envoi du formulaire. Comment faire cela ?
Salut,
Suffit de remplacer
<input type="submit"...
Ah ? Tiens, c'est nouveau ça comme non-astuce !
quand on sait qu'un formulaire peut être envoyé sans aucun bouton ... (donc par la touche Entree)
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit' employé, s'il y en a plusieurs, de nom différents ?
??? (à mon idée) il ne peut il y avoir qu'un seul submit par formulaire ...
mais il est possible d'avoir plusieurs boutons pour soumettre des formulaires inclus dans la même page
Ou est le problème, si il n'y à pas de button Submit ET si il y a plus
d'une zone de texte (<input type="text">) mon astuce fonctionne parfaitement
--
Saad Saad
@SM wrote:
PERSONAL COMPUTERS (J.C.SAMUEL) wrote:
Bonjour à tous,
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par
défaut dans un formulaire et donc d'imoser le clic pour l'envoi du
formulaire.
Comment faire cela ?
Salut,
Suffit de remplacer
<input type="submit"...
Ah ?
Tiens, c'est nouveau ça comme non-astuce !
quand on sait qu'un formulaire peut être envoyé sans aucun bouton ...
(donc par la touche Entree)
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit'
employé, s'il y en a plusieurs, de nom différents ?
???
(à mon idée)
il ne peut il y avoir qu'un seul submit par formulaire ...
mais il est possible d'avoir plusieurs boutons pour soumettre
des formulaires inclus dans la même page
Ou est le problème, si il n'y à pas de button Submit ET si il y a plus d'une zone de texte (<input type="text">) mon astuce fonctionne parfaitement
-- Saad Saad
@SM wrote:
PERSONAL COMPUTERS (J.C.SAMUEL) wrote:
Bonjour à tous,
Je cherche à empêcher le fait qu'un bouton 'submit' soit sélectionné par défaut dans un formulaire et donc d'imoser le clic pour l'envoi du formulaire. Comment faire cela ?
Salut,
Suffit de remplacer
<input type="submit"...
Ah ? Tiens, c'est nouveau ça comme non-astuce !
quand on sait qu'un formulaire peut être envoyé sans aucun bouton ... (donc par la touche Entree)
Si ce n'est pas possible, comment récupérer le Js le nom du 'submit' employé, s'il y en a plusieurs, de nom différents ?
??? (à mon idée) il ne peut il y avoir qu'un seul submit par formulaire ...
mais il est possible d'avoir plusieurs boutons pour soumettre des formulaires inclus dans la même page
ou d'une dépendance javascript javascript désactivé, c'est presque du déni de service en dehors d'intranets:-)).
faudrait donc en parler à de nombreux sites "majeurs" qui en usent et en abusent ... :-/
Un exemple intéressant est le formulaire de "post" de Google pour les groupes UseNet; Google a créé deux boutons: le premier bouton est "Preview", qui permet de visualiser le post, et le second est "Post", qui permet de l'envoyer.
Ah? et comment fonctionne-ce ? si je presse un des submit du formulaire il va, indépendamment de sa valeur, lancer le même action du form
sauf à avoir un post-traitement de ce form sur le serveur (suivant le id, nom ou value du bouton actionné) je ne vois pas comment la decision de post ou de preview peut être décidée en HTML4
La touche [enter] permet de soumettre le formulaire, mais ce comportement est différent suivant les navigateurs; une possibilité pour empêcher ce comportement est de capturer la touche [enter] sur la textbox fautive.
ou d'une dépendance javascript
javascript désactivé, c'est presque du déni de service en dehors
d'intranets:-)).
faudrait donc en parler à de nombreux sites "majeurs" qui en usent
et en abusent ...
:-/
Un exemple intéressant est le formulaire de "post" de Google pour les
groupes UseNet; Google a créé deux boutons: le premier bouton est
"Preview", qui permet de visualiser le post, et le second est "Post",
qui permet de l'envoyer.
Ah?
et comment fonctionne-ce ?
si je presse un des submit du formulaire
il va, indépendamment de sa valeur, lancer le même action du form
sauf à avoir un post-traitement de ce form sur le serveur
(suivant le id, nom ou value du bouton actionné)
je ne vois pas comment la decision de post ou de preview
peut être décidée en HTML4
La touche [enter] permet de soumettre le formulaire, mais ce
comportement est différent suivant les navigateurs; une possibilité pour
empêcher ce comportement est de capturer la touche [enter] sur la
textbox fautive.
ou d'une dépendance javascript javascript désactivé, c'est presque du déni de service en dehors d'intranets:-)).
faudrait donc en parler à de nombreux sites "majeurs" qui en usent et en abusent ... :-/
Un exemple intéressant est le formulaire de "post" de Google pour les groupes UseNet; Google a créé deux boutons: le premier bouton est "Preview", qui permet de visualiser le post, et le second est "Post", qui permet de l'envoyer.
Ah? et comment fonctionne-ce ? si je presse un des submit du formulaire il va, indépendamment de sa valeur, lancer le même action du form
sauf à avoir un post-traitement de ce form sur le serveur (suivant le id, nom ou value du bouton actionné) je ne vois pas comment la decision de post ou de preview peut être décidée en HTML4
La touche [enter] permet de soumettre le formulaire, mais ce comportement est différent suivant les navigateurs; une possibilité pour empêcher ce comportement est de capturer la touche [enter] sur la textbox fautive.
Ou est le problème, si il n'y à pas de button Submit ET si il y a plus d'une zone de texte (<input type="text">) mon astuce fonctionne parfaitement
Non, ça ne fonctionne pas ! en tous cas .. pas avec mon IE
Le test : <html> <form action="011.htm" target="_blank"> <input type=text> <p><input type=text> <p><input type=text> <p><input type=button onclick="this.form.submit();" value=OK> </form> </html>
@SM wrote:
Suffit de remplacer
<input type="submit"...
Ah ? Tiens, c'est nouveau ça comme non-astuce !
quand on sait qu'un formulaire peut être envoyé sans aucun bouton ... (donc par la touche Entree)
Yann-Erwan Perio
@SM wrote:
Salut Stéphane,
faudrait donc en parler à de nombreux sites "majeurs" qui en usent et en abusent ... :-/
S'il n'y avait que ça! La plupart des sites "commerciaux" n'ont même pas de HTML valide, ou utilisent javascript comme navigation principale, sans même esquisser la moindre stratégie de fallback pour les browsers qui en sont dépourvus.
Le browser-scripting a souvent été considéré/méprisé comme facile, et pourtant c'est un des domaines les plus difficiles, avec un environnement d'exécution inconnu et un langage (js) qui peut être codé de façon procédurale, objet ou fonctionnelle!
Un exemple intéressant est le formulaire de "post" de Google pour les groupes UseNet; Google a créé deux boutons: le premier bouton est "Preview", qui permet de visualiser le post, et le second est "Post", qui permet de l'envoyer.
si je presse un des submit du formulaire il va, indépendamment de sa valeur, lancer le même action du form sauf à avoir un post-traitement de ce form sur le serveur (suivant le id, nom ou value du bouton actionné)
C'est exactement cela; le bouton submit pressé sera transmis également, il suffit de lui donner un nom explicit et de récupérer le nom à partir des Request.Form (ou équivalent).
Quant au post-traitement, il faut bien wqu'il y ait un traitement sur le serveur; que tu aies deux pages (une pour chaque action) ou une page avec du proxying et des includes, c'est une question de conception applicative généralement facilement résolue IMHO.
faudrait donc en parler à de nombreux sites "majeurs" qui en usent
et en abusent ...
:-/
S'il n'y avait que ça! La plupart des sites "commerciaux" n'ont même pas
de HTML valide, ou utilisent javascript comme navigation principale,
sans même esquisser la moindre stratégie de fallback pour les browsers
qui en sont dépourvus.
Le browser-scripting a souvent été considéré/méprisé comme facile, et
pourtant c'est un des domaines les plus difficiles, avec un
environnement d'exécution inconnu et un langage (js) qui peut être codé
de façon procédurale, objet ou fonctionnelle!
Un exemple intéressant est le formulaire de "post" de Google pour les
groupes UseNet; Google a créé deux boutons: le premier bouton est
"Preview", qui permet de visualiser le post, et le second est "Post",
qui permet de l'envoyer.
si je presse un des submit du formulaire
il va, indépendamment de sa valeur, lancer le même action du form
sauf à avoir un post-traitement de ce form sur le serveur
(suivant le id, nom ou value du bouton actionné)
C'est exactement cela; le bouton submit pressé sera transmis également,
il suffit de lui donner un nom explicit et de récupérer le nom à partir
des Request.Form (ou équivalent).
Quant au post-traitement, il faut bien wqu'il y ait un traitement sur le
serveur; que tu aies deux pages (une pour chaque action) ou une page
avec du proxying et des includes, c'est une question de conception
applicative généralement facilement résolue IMHO.
faudrait donc en parler à de nombreux sites "majeurs" qui en usent et en abusent ... :-/
S'il n'y avait que ça! La plupart des sites "commerciaux" n'ont même pas de HTML valide, ou utilisent javascript comme navigation principale, sans même esquisser la moindre stratégie de fallback pour les browsers qui en sont dépourvus.
Le browser-scripting a souvent été considéré/méprisé comme facile, et pourtant c'est un des domaines les plus difficiles, avec un environnement d'exécution inconnu et un langage (js) qui peut être codé de façon procédurale, objet ou fonctionnelle!
Un exemple intéressant est le formulaire de "post" de Google pour les groupes UseNet; Google a créé deux boutons: le premier bouton est "Preview", qui permet de visualiser le post, et le second est "Post", qui permet de l'envoyer.
si je presse un des submit du formulaire il va, indépendamment de sa valeur, lancer le même action du form sauf à avoir un post-traitement de ce form sur le serveur (suivant le id, nom ou value du bouton actionné)
C'est exactement cela; le bouton submit pressé sera transmis également, il suffit de lui donner un nom explicit et de récupérer le nom à partir des Request.Form (ou équivalent).
Quant au post-traitement, il faut bien wqu'il y ait un traitement sur le serveur; que tu aies deux pages (une pour chaque action) ou une page avec du proxying et des includes, c'est une question de conception applicative généralement facilement résolue IMHO.