代码之家  ›  专栏  ›  技术社区  ›  RYFN

基于另一个的选定值禁用dropdownlist

  •  2
  • RYFN  · 技术社区  · 17 年前

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

    我有一个测试页面,上面有以下内容:

    <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角色中选择的值不是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 回复  |  直到 17 年前
        1
  •  3
  •   instanceof me    17 年前

    == 而不是 = 在您的if中:

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

    = 是为了分配,而 ==

        2
  •  2
  •   karim79    17 年前

    您没有正确比较,需要使用“==”:

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