Je cherche la manière d'empêcher le submit d'un formulaire avec la
combinaison des touches CTRL+ENTER sous Firefox.
En fait, mon curseur se trouve dans un input text, les flèches
permettent de descendre et monter dans une <select> tout en gardant le
focus dans mon input.
Je voudrais qu'à l'exécution de la combinaison cité si dessus, l'écran
aille directement à la page qui sera sélectionner dans le select.
Si je suis en dehord de l'input cela fonctionne parfaitement, mais si je
suis dans l'input le formulaire est "submiter" directement.
Mon programme ne tournera que sur Firefox.
function move_liste(e)
{
var liste=document.getElementById("liste");
if (e.keyCode==38 && liste.selectedIndex>0) //fleche haut
liste.selectedIndex-=1;
else if (e.keyCode==40 && liste.selectedIndex<liste.length-1) //fleche bas
liste.selectedIndex+=1;
else if (e.ctrlKey && e.keyCode==13 && liste.selectedIndex >= 0)
//ctrl+enter
liste.ondblclick();
}
<body onKeyDown="move_liste(event);">
Bien sur je peux mettre la combinaison CTRL+fleche droite, mais mon
client voudrait CTRL+ENTER
Et si on faisait Control + fleches ET Control + Enter çà plairait-y ? (perso, je trouve çà + logique d'emploi)
Un peu génant ces fleches qui font valser dans le champ ...
m'enfin pour ton Enter il suffit d'avoir au bon moment un onSubmit à false dans le form
Ceci fonctionne chez moi (IE5.1)
<html> <script type="text/javascript"> var contr = true; function move_liste(e) { var liste=document.forms[0].liste; if(e.ctrlKey) { if (e.keyCode=8 && liste.selectedIndex>0) //fleche haut liste.selectedIndex-=1; else if (e.keyCode=@ && liste.selectedIndex<liste.length-1) //fleche bas liste.selectedIndex+=1; else if (e.keyCode= && liste.selectedIndex >= 0) liste.ondblclick(); contr = false; } else contr=true; } </script> <body onKeyDown="move_liste(event);"> <form action="asm1.gif" target="_blank" onsubmit="return contr;"> Choisir dans liste : [Control]+[Fleche haut] / [Control]+[Fleche bas]<br> Valider choix liste : [Control]+[Entree]<br> <select name="liste" ondblclick="alert('choix = '+this.options[this.options.selectedIndex].text);"> <option>mon test 1</option> <option>mon test 2</option> <option>mon test 3</option> <option>mon test 4</option> <option>mon test 5</option> <option>mon test 6</option> </select> <p>Test de chanp <input type=text> avec focus </form> </html>
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
Saad Saad
Salut,
Effectivement naviguer avec CTRL est mieux, le curseur reste à sa place. Comme cité dans mon message, je ne travail que sur Firefox (pour les raisons que tu devines)
Après moultes recherche je suis arrivé à exécuter la fonction de mon select sans exécuter le submit de mon formulaire je te donne l'astuce, qui n'est peux être pas très professionnel mais qui fonctionne très bien
Et voilà, j'ai simplement mis ma commande dans un setTimeout qui permet de retarder un script, et même mis à 0 permet d'afficher ma page à partir d'une valeur de mon select avec CTRL+ENTER avant que le formulaire ne soit submiter
merci de quand même de ton aide
Saad
mais mon client voudrait CTRL+ENTER
Et si on faisait Control + fleches ET Control + Enter çà plairait-y ? (perso, je trouve çà + logique d'emploi)
Un peu génant ces fleches qui font valser dans le champ ...
m'enfin pour ton Enter il suffit d'avoir au bon moment un onSubmit à false dans le form
Ceci fonctionne chez moi (IE5.1)
<html> <script type="text/javascript"> var contr = true; function move_liste(e) { var liste=document.forms[0].liste; if(e.ctrlKey) { if (e.keyCode=8 && liste.selectedIndex>0) //fleche haut liste.selectedIndex-=1; else if (e.keyCode=@ && liste.selectedIndex<liste.length-1) //fleche bas liste.selectedIndex+=1; else if (e.keyCode= && liste.selectedIndex >= 0) liste.ondblclick(); contr = false; } else contr=true; } </script> <body onKeyDown="move_liste(event);"> <form action="asm1.gif" target="_blank" onsubmit="return contr;"> Choisir dans liste : [Control]+[Fleche haut] / [Control]+[Fleche bas]<br> Valider choix liste : [Control]+[Entree]<br> <select name="liste" ondblclick="alert('choix = '+this.options[this.options.selectedIndex].text);"> <option>mon test 1</option> <option>mon test 2</option> <option>mon test 3</option> <option>mon test 4</option> <option>mon test 5</option> <option>mon test 6</option> </select> <p>Test de chanp <input type=text> avec focus </form> </html>
Salut,
Effectivement naviguer avec CTRL est mieux, le curseur reste à sa place.
Comme cité dans mon message, je ne travail que sur Firefox (pour les
raisons que tu devines)
Après moultes recherche je suis arrivé à exécuter la fonction de mon
select sans exécuter le submit de mon formulaire
je te donne l'astuce, qui n'est peux être pas très professionnel mais
qui fonctionne très bien
Et voilà, j'ai simplement mis ma commande dans un setTimeout qui permet
de retarder un script, et même mis à 0
permet d'afficher ma page à partir d'une valeur de mon select avec
CTRL+ENTER avant que le formulaire ne soit submiter
merci de quand même de ton aide
Saad
mais mon
client voudrait CTRL+ENTER
Et si on faisait Control + fleches ET Control + Enter
çà plairait-y ?
(perso, je trouve çà + logique d'emploi)
Un peu génant ces fleches qui font valser dans le champ ...
m'enfin pour ton Enter
il suffit d'avoir au bon moment un onSubmit à false dans le form
Ceci fonctionne chez moi (IE5.1)
<html>
<script type="text/javascript">
var contr = true;
function move_liste(e) {
var liste=document.forms[0].liste;
if(e.ctrlKey) {
if (e.keyCode=8 && liste.selectedIndex>0) //fleche haut
liste.selectedIndex-=1;
else if (e.keyCode=@ && liste.selectedIndex<liste.length-1) //fleche bas
liste.selectedIndex+=1;
else if (e.keyCode= && liste.selectedIndex >= 0)
liste.ondblclick();
contr = false;
}
else contr=true;
}
</script>
<body onKeyDown="move_liste(event);">
<form action="asm1.gif" target="_blank" onsubmit="return contr;">
Choisir dans liste : [Control]+[Fleche haut] / [Control]+[Fleche bas]<br>
Valider choix liste : [Control]+[Entree]<br>
<select name="liste"
ondblclick="alert('choix = '+this.options[this.options.selectedIndex].text);">
<option>mon test 1</option>
<option>mon test 2</option>
<option>mon test 3</option>
<option>mon test 4</option>
<option>mon test 5</option>
<option>mon test 6</option>
</select>
<p>Test de chanp <input type=text> avec focus
</form>
</html>
Effectivement naviguer avec CTRL est mieux, le curseur reste à sa place. Comme cité dans mon message, je ne travail que sur Firefox (pour les raisons que tu devines)
Après moultes recherche je suis arrivé à exécuter la fonction de mon select sans exécuter le submit de mon formulaire je te donne l'astuce, qui n'est peux être pas très professionnel mais qui fonctionne très bien
Et voilà, j'ai simplement mis ma commande dans un setTimeout qui permet de retarder un script, et même mis à 0 permet d'afficher ma page à partir d'une valeur de mon select avec CTRL+ENTER avant que le formulaire ne soit submiter
merci de quand même de ton aide
Saad
mais mon client voudrait CTRL+ENTER
Et si on faisait Control + fleches ET Control + Enter çà plairait-y ? (perso, je trouve çà + logique d'emploi)
Un peu génant ces fleches qui font valser dans le champ ...
m'enfin pour ton Enter il suffit d'avoir au bon moment un onSubmit à false dans le form
Ceci fonctionne chez moi (IE5.1)
<html> <script type="text/javascript"> var contr = true; function move_liste(e) { var liste=document.forms[0].liste; if(e.ctrlKey) { if (e.keyCode=8 && liste.selectedIndex>0) //fleche haut liste.selectedIndex-=1; else if (e.keyCode=@ && liste.selectedIndex<liste.length-1) //fleche bas liste.selectedIndex+=1; else if (e.keyCode= && liste.selectedIndex >= 0) liste.ondblclick(); contr = false; } else contr=true; } </script> <body onKeyDown="move_liste(event);"> <form action="asm1.gif" target="_blank" onsubmit="return contr;"> Choisir dans liste : [Control]+[Fleche haut] / [Control]+[Fleche bas]<br> Valider choix liste : [Control]+[Entree]<br> <select name="liste" ondblclick="alert('choix = '+this.options[this.options.selectedIndex].text);"> <option>mon test 1</option> <option>mon test 2</option> <option>mon test 3</option> <option>mon test 4</option> <option>mon test 5</option> <option>mon test 6</option> </select> <p>Test de chanp <input type=text> avec focus </form> </html>
Et voilà, j'ai simplement mis ma commande dans un setTimeout qui permet de retarder un script, et même mis à 0
ha oui, pas mal comme astuce ! faudrait voir ce que ça donne en mettant un target="_blank" dans le form et faire que le dblclick affiche dans mme fenêtre
J'imagine que le formulaire est bien submité (ce que devrait vérifier le test blank) mais ... 0 millisecondes après c'est le dblclick de liste qui s'actionne et qui fait donc afficher le choix de la liste
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
Et voilà, j'ai simplement mis ma commande dans un setTimeout qui permet
de retarder un script, et même mis à 0
ha oui, pas mal comme astuce !
faudrait voir ce que ça donne en mettant un target="_blank" dans le form
et faire que le dblclick affiche dans mme fenêtre
J'imagine que le formulaire est bien submité
(ce que devrait vérifier le test blank)
mais ...
0 millisecondes après c'est le dblclick de liste qui s'actionne
et qui fait donc afficher le choix de la liste
--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************
Et voilà, j'ai simplement mis ma commande dans un setTimeout qui permet de retarder un script, et même mis à 0
ha oui, pas mal comme astuce ! faudrait voir ce que ça donne en mettant un target="_blank" dans le form et faire que le dblclick affiche dans mme fenêtre
J'imagine que le formulaire est bien submité (ce que devrait vérifier le test blank) mais ... 0 millisecondes après c'est le dblclick de liste qui s'actionne et qui fait donc afficher le choix de la liste
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************