2009-06-19 12 views
2

Cela peut être une question stupide, mais je suis encore à apprendre alors ne me pardonnera si la réponse est évidente :)Désactiver dropdownlist en fonction de la valeur sélectionnée d'un autre

J'ai une page de test avec les éléments suivants sur:

<select name="ddlRoles" ID="ddlRoles" OnChange="DisEnableDDL();"> 
<option value="-1">Fresh Milk</option> 
<option value="2">Old Cheese</option> 
<option value="3">Hot Bread</option> 
</select> 
<select name="ddlCust" ID="ddlCust"> 
<option value="-1">rawr</option> 
<option value="2">root</option> 
<option value="3">honk</option> 
</select> 

Si l'utilisateur sélectionne quoi que ce soit avec une valeur qui n'est pas 3 de rôles ddl, il faut désactiver ddlCust. Voici ma fonction JS:

function DisEnableDDL() 
{ 
var ddlR = document.getElementById("ddlRoles") 
var ddlC = document.getElementById("ddlCust") 
if(ddlR.options[ddlR.selectedIndex].value = "3") 
{ 
    ddlC.disabled = false; 
} 
else 
{ 
    ddlC.selectedIndex = 0; 
    ddlC.disabled = true;  
} 
} 

ne fonctionne pas. Qu'est-ce que je rate? ai-je échoué à définir correctement mes variables? Est-ce que cela change simplement les variables ddlR et ddlC sans changer les éléments sur la page elle-même ou quelque chose? Suite à cela dans Firebug, il semble tomber dans les déclarations correctes, mais ddlCust n'est jamais désactivé.

Toute aide serait grandement appréciée!

Répondre

3

== au lieu de = dans votre cas:

if(ddlR.options[ddlR.selectedIndex].value == "3") 

= est pour l'affectation, alors que == est à titre de comparaison, dans la plupart des syntaxes C-like.

+0

putain! parfois vous regardez des problèmes comme celui-ci et juste ne peux pas voir ce qui ne va pas ... merci :) – RYFN

+1

il devrait y avoir une liste de contrôle automatisée pour ces choses :) certains IDE ont en fait que –

2

Vous n'êtes pas comparer correctement, vous devez utiliser '==':

if(ddlR.options[ddlR.selectedIndex].value == "3") 
Questions connexes