Petit bug avec des formulaires

Résolu/Fermé
corentin.bc Messages postés 389 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 - Modifié par jordane45 le 24/06/2016 à 09:28
corentin.bc Messages postés 389 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 - 24 juin 2016 à 14:02
Bonjour,
sur cette page :
https://dev.accessibiliteprogrammes.fr/redirections/7ZWin32Inst.html
j'aimerais que quand mon visiteur validera son choix effectué dans la liste déroulante l'URL contenue dans les éléments option s'ouvre.
Hors là ce n'est pas le cas et j'ignore comment faire.
Voici mon code :
<form method="post">
<label for="serveur_tel">Quel serveur utiliser pour le téléchargement ?</label>
<select name="serveur_tel" id="serveur_tel">
<option value="[http://7-zip.org/a/7z1602.exe]">Serveur de l'éditeur</option>
<option value="/logiciels/7z1602.exe" selected>Serveur Accessibilité Programmes</option>
</select>
<br />
<input type="submit" value="Valider" title="Valider, télécharger le logiciel" />
</form>


merci beaucoup d'avance.

Amicalement! Corentin.

EDIT : AJOUT DES BALISES DE CODE

6 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 juin 2016 à 09:30
Bonjour,

Fais le via javascript ...
exemple :
<select onchange="redirect(this);">
    <option value="">Select...</option>
    <option value="http://google.com">Google</option>
    <option value="http://yahoo.com">Yahoo</option>
</select>

<script type='text/javascript'>
 function redirect(elm){
   var url = elm.value;
   window.location = url;
}
</script>


0
corentin.bc Messages postés 389 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 8
24 juin 2016 à 09:53
Au risque de devenir chiant :
y a-t-il un moyen plus accessible ?
Je m'explique :
étant un site pour non-voyants l'accessibilité est primordiale :
hors, avec JavaScript il y a le problème suivant avec IE, Chrome, Opéra et d'autres navigateurs :
les non-voyants utilisants les flèches directionnelles du clavier pour se déplacer dans la liste déroulante la validation se fait toute seule alors que ça devrait attendre que l'utilisateur est validé par entrée.

Je ne sais pas si je suis bien clair mais si tu as compris je veux bien que tu me dises comment faire pour qu'il attende bien que le choix est été validé.

Merci.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 juin 2016 à 10:59
Dans ce cas il suffirait de ne pas utiliser l'event CHANGE mais plutot le ONKEYPRESS et tester si il a appuyé sur la touche ENTER

https://www.w3schools.com/jsref/event_onkeypress.asp

et dedans utiliser un if sur le keycode

 if (event.keyCode == 13) {
  var url = elm.value;
   window.location = url;
 }

0
corentin.bc Messages postés 389 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 8
24 juin 2016 à 11:13
Alors si j'ai tout suivis et bien compris malgré mon anglais déplorable à l'article du W3C ça donne ça :

<form method="post">
<label for="serveur_tel">Quel serveur utiliser pour le téléchargement ?</label>
<select name="serveur_tel" id="serveur_tel" onkeypress="redirect(this);">
<option value="">Select...</option>
<option value="https://sourceforge.net/projects/sevenzip/files/7-Zip/16.02/7z1602.exe/download?use_mirror=freefr">Serveur de l'éditeur</option>
<option value="/logiciels/7z1602.exe" selected>Serveur Accessibilité Programmes</option>
</select>
<script type='text/javascript'>
if (event.keyCode == 13) {
var url = elm.value;
window.location = url;
}
</script>
</form>


est-ce bien?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 juin 2016 à 11:42
Sauf que tu as collé le IF .... mais tu ne l'a pas mis dans une "fonction".
La.. ton ONKEYPRESS cherche à lancer la fonction redirect() .... sauf que maintenant... elle n'existe plus dans ton code vu que tu ne l'a pas remise.....
0
corentin.bc Messages postés 389 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 8
24 juin 2016 à 11:55
Alors voilà une modif :

<form method="post">
<label for="serveur_tel">Quel serveur utiliser pour le téléchargement ?</label>
<select name="serveur_tel" id="serveur_tel" onKeyPress="if (event.keyCode == 13 redirect(this);">
<option value="">Select...</option>
<option value="https://sourceforge.net/projects/sevenzip/files/7-Zip/16.02/7z1602.exe/download?use_mirror=freefr">Serveur de l'éditeur</option>
<option value="/logiciels/7z1602.exe" selected>Serveur Accessibilité Programmes</option>
</select>
<script type='text/javascript'>
function redirect(elm){
var url = elm.value;
window.location = url;
}
</script>
</form>



mais ça semble pas mieux en fait ?
Il faut mettre quoi à quel endroit, j'y comprends rien à ce JS, un jour faudra vraiment que je l'apprenne.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 juin 2016 à 13:24
Voici le code corrigé et fonctionnel :
<form>
 <label for="serveur_tel">Quel serveur utiliser pour le téléchargement ?</label>
 <select name="serveur_tel" id="serveur_tel" onKeyPress="redirect(event,this);">
  <option value="">Select...</option>
  <option value="http://7-zip.org/a/7z1602.exe">Serveur de l'éditeur</option>
  <option value="/logiciels/7z1602.exe" selected>Serveur Accessibilité Programmes</option>
 </select>

</form>

<script type='text/javascript'>
 function redirect(event,elm){
  if (event.keyCode == 13){ 
   var url = elm.value;
   window.location = url;
  }
}
</script>

0
corentin.bc Messages postés 389 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 8
24 juin 2016 à 14:02
Mais c'est que ça fonctionne à merveille.
Merci infiniment, je passe immédiatement le poste en résolu.
0