11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je suis en train de faire une bannière avec un menu déroulant. Chaque valeur de ce menu doit pointer vers une url différente quand on clique sur "OK".

Voilà ce que j'ai tenté de faire mais cela ne fonctionne pas :


<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>

<meta name="description" content="">
<meta name="keywords" content="">
<script language="javascript" type="text/javascript">
//redirection lien
function liens(){

if(document.forms['form'].menu.options[1].selected == true) {
document.forms['form'].action("http://www.google.fr");
document.forms['form'].submit();

}
else if (document.forms['form'].menu.options[2].selected == true){

document.forms['form'].action("http://www.wanadoo.fr");
document.forms['form'].submit();
}

else if (document.forms['form'].menu.options[3].selected == true){

document.forms['form'].action("http://www.yahoo.fr");
document.forms['form'].submit();
}

else if (document.forms['form'].menu.options[4].selected == true){

document.forms['form'].action("http://www.voila.fr");
document.forms['form'].submit();
}

}

</script>



dans mon header et dans mon <body>, il y a :


<form name="form" method="post">
<select name="menu">
                                      
<option selected="selected"></option>
<option>choix1</option>
<option>choix2</option>
<option>choix3</option>
<option>choix4</option>

</select>


<input name="bouton" type="image" src="images/ok.gif" alt="Valider" onclick="liens()">



En fait, aucune action ne se produit quand je sélectionne l'une des options et valider.

De plus, je souhaiterai que le lien s'ouvre dans une nouvelle page : comment faire ?

Merci de votre aide !!

PS : j'espère que je me suis améliorée par rapport à la charte du forum Smiley confused
Modifié par louloute8091 (16 Mar 2007 - 14:39)
Essaie document.forms['form'].action = "http://www.yahoo.fr";
au lieu de document.forms['form'].action("http://www.yahoo.fr");
Pourqoi ne pas directement utiliser les values plutôt que de faire une fonction avec des blocs if...else if...else if ?

Exemple :

<form action="javascript:void(0);" onsubmit="var v = this.elements['choix']; document.location = v.options[v.selectedIndex].value">
<p><select id="choix"<
<option value="http://www.xxx.com">XXX</option<
<option value="http://www.yyy.com">YYY</option>
<option value="http://www.zzz.com">ZZZ</option>
</select></p>
</form>


Attention toutefois, ni cette version ni la tienne ne fonctionne dans le cas où javascript est désactivé.
a écrit :
Attention toutefois, ni cette version ni la tienne ne fonctionne dans le cas où javascript est désactivé.


Que veux-ty dire par là ?

en tout cas merci pour cette solution car je trouve ça beaucoup plus optimal..j'avais fini par trouver la solution avec ma technique mais je n'étais pas complètement satisfaite..

Sinon si je souhaite ouvrir mon lien dans une nouvelle fenêtre , comment faire ?
QuentinC, je ne comprends pas car cela ne fonctionne pas...j'ai activé le script javascript dans le head, j'ai repris ton code en ajoutant l'id dans le select, et voilà ce que j'ai mis dans mon bouton :



<form name="formulaire" method="post"action="javascript:void(0);" onsubmit="var v = this.elements['choix']; document.location = v.options[v.selectedIndex].value;">

<!-- mes options -->

<input name="bouton" type="submit" value="Go!" 


Smiley rolleyes
Modifié par louloute8091 (16 Mar 2007 - 09:48)