根据另一个的选定值禁用下拉列表

时间:2009-06-19 10:31:33

标签: javascript

这可能是一个愚蠢的问题,但我仍在学习,如果答案显而易见,请原谅我:)

我有一个测试页面,其中包含以下内容:

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

如果用户从ddl Roles中选择值不是3的任何内容,则应禁用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永远不会被禁用。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

if:

中的

==而不是=

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

=用于分配,而==用于比较,在大多数类C语法中。

答案 1 :(得分:2)

你没有正确比较,你需要使用'==':

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