2012-12-18 4 views
2

Je travaille sur ce sujet depuis un moment, mais je ne comprends pas ce qui ne va pas avec mon code. Je suis sûr que c'est quelque chose de simple - ça l'est toujours!javascript menu déroulant onclick

Fondamentalement, j'ai un menu déroulant, avec quelques options. Je veux qu'il se rende à une page Web lorsque la troisième option, plombier, est sélectionnée. Lorsque l'un des autres est cliqué, rien ne devrait arriver.

Mon code à ce jour est:

<select id = 'search'> 
<option value="1">Carpenter</option> 
<option value="2">Electrician</option> 
<option value="3">Plumber</option> 
<option value="4">Tiler</option> 
<option value="5">Boiler Installation</option> 

</select> 

Go

Et mon javascript est:

<script> 
function go_button { 
if (search.value=="3") { 
location="search_results.htm" 
} 
} 

</script>​​​​​​​ 

Mais cela ne fonctionne pas. Quelqu'un pourrait-il me dire ce qui ne va pas?

Merci.

C.

Répondre

2

Vous pouvez mettre un change event sur votre commande via le script ou l'ajouter directement à votre commande ..

Méthode directe:

<select id="search" onChange="OnSelectedIndexChange()"> 

Ceci est la fonction que vous devez mettre dans votre script:

//function for changed selection 
function OnSelectedIndexChange() 
{ 
if (document.getElementById('search').value == "3"){ 
    location.href="search_results.htm"; 
} 
} 

Ajouter Modifier événement à l'aide de scripts (soit JavaScript ou JQuery):

Je propose JQuery pour le faire (la fonction onselectedindexchange est obsolète ici)

$('#search').change(function() { 

if(this.val() == "3"){ 
location.href="search_results.htm"; 
} 

}); 

Si vous ne souhaitez pas utiliser JQuery juste ajoutez le code suivant:

var yourdropdown = document.getElementById('search'); 
    yourdropdown.Attributes.Add("onChange", "return OnSelectedIndexChange();") 
0

Vous devez dire quel élément javascript est vous êtes intéressé.

Utilisez getElementById("search") pour retourner l'élément alors vous pouvez regarder en obtenir sa valeur.

0
<select id="search"> 

Je pense qu'il y a beaucoup d'espaces.

getElementById("search").value 

Je n'ai pas utilisé dans un certain temps, mais il est pas ...

location.href = "search_results.htm"; 

Un peu comme cela vous donne accès à l'objet. Et last but not least, vous devez associer votre fonction « go_button » avec un événement de la liste déroulante, quelque chose comme ceci:

<select id="search" onClick="go_button();"> 
0

Je pense - si possible - utiliser jQuery ou un autre cadre de, les deux ont intégré sélectionner et autres html/plugins dom me & thodes.