11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai un formulaire avec un select et j'aimerais en cliquant sur "Enter" qu'il fasse la même action que si je clique sur le bouton submit "go". Mais je ne sais pas comment m'y prendre.


<form>
<select>
  <option value="http://www.google.com">choix 1</option>
  <option value="http://www.hotmail.com">choix 2</option>
</select>
<input type="submit" value="go">
</form>

Modifié par britanicus75 (09 Apr 2009 - 18:38)
Le enter fonctionne directement dans les navigateurs modernes. Je ne sais pas comment c'est dans IE mais ça ne sert à rien de changer: les personnes navigants au clavier ont leurs habitudes pourquoi les forcer à surfer autrement?
En fait, tu veux soumettre ton formulaire dès que la sélection est faite ?
Donc effectivement mauvaise idée, pour les raisons évoquées par Patidou (@QuentinC : reste calme Smiley lol ) mais aussi parce que ton visiteur peut se tromper, changer d'avis, etc...
Concernant le lien vers Openweb, il ne me semble pas que tu aies pu y lire quelque chose qui se rapproche de ce que tu tentes de faire Smiley confuse

Ce n'est pas parce que l'on te le demande qu'il faut le faire, et tu as maintenant un argumentaire tout à fait valide pour se faire Smiley cligne

Sinon, la balise select doit être fermée Smiley cligne

Cdt,
Sylvain
Non je ne veux pas que le formulaire ce soumette a la selection. Je veux vraiment que cela se fasse soit sur le clique du bouton soit sur la touche entrer.
Donc voici ce que je voulais faire.
Mais ici peu importe si c'est la touche entrer ou autre qui est appuyer le formulaire s'envoi.


<script type="text/javascript">

function valider() {
	// si la valeur du select est non vide
	if(document.getElementById('mySelect')[document.getElementById('mySelect').selectedIndex].value != "") {
		document.getElementById('myForm').action = document.getElementById('mySelect')[document.getElementById('mySelect').selectedIndex].value;
	}
}

function submitForm(theForm){
//	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
//	if (keyCode == 13) {
		document.getElementById(theForm).submit();
//	}
}
</script>




<form name="formSaisie" method="post" id="myForm" action="">
	<select id="mySelect" name="kiki" onchange="valider();" onkeydown="submitForm('myForm')">
		<option value="">choisi
		<option value="http://www.google.com">Google</option>
		<option value="http://www.yahoo.com">Yahoo</option>
	</select>
	<input type="submit" value="Go">
</form>

Modifié par britanicus75 (09 Apr 2009 - 21:19)
Bon je reprend, il y a peut-être quelque chose qui que je n'ai pas compris dans ton discours, alors je répète : l'envoi du formulaire se fait avec la touche enter se fait sans problèmes dans Firefox, Safari, Camino, etc, il n'y a que dans IE que ça «cloche» apparemment… Pourquoi perdre du temps sur un détail de ce genre? À mon avis ça va poser des problèmes d'accessibilité aux habitués de ce navigateur…
Il me semble que tout le monde aime avoir le bouton "entrer" pour envoyer son formulaire et je ne vois pas pourquoi cela semble être un problème à l'accessibilité. Avant mon formulaire s'envoyait que lorsque je cliquais sur le bouton du formulaire, si je veux offrir le bouton "entrer" en plus il me semble que c'est encore plus accessible non?