2009-06-19 4 views
2

Это может быть глупый вопрос, но я все еще учусь, так что простите меня, если ответ очевиден :)Отключить DropDownList на основе выбранного значения другого

У меня есть тестовую страницу со следующим по:

<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> 

Если пользователь выбирает что-нибудь со значением, которое не так 3 из DDL ролей, он должен отключить ddlCust. Вот моя функция 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;  
} 
} 

Не работает. Что мне не хватает? мне не удалось правильно установить мои переменные? Это просто изменяет переменные ddlR и ddlC без изменения элементов на самой странице или что-то еще? После этого в Firebug он попадает в правильные утверждения, но ddlCust никогда не отключается.

Любая помощь была бы очень признательна!

ответ

3

== вместо = в вашем случае:

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

= для задания, в то время как == для сравнения, в большинстве C-подобных синтаксисов.

+0

проклятых! иногда вы смотрите на такие проблемы и просто не можете понять, что не так ... спасибо :) – RYFN

+1

должен быть автоматический контрольный список для этих вещей :) некоторые IDE на самом деле имеют это –

2

Вы не сравниваете должным образом, вы должны использовать '==':

if(ddlR.options[ddlR.selectedIndex].value == "3") 
Смежные вопросы