javascript函数没有做任何事情

dan*_*dan 0 javascript

我有以下功能,我想隐藏我的表单中的一些文本输入字段.我想要隐藏的所有字段都包含在div"site2"中

<script language="Javascript">

function showHide(value) {
if (value=='yes') {
        document.getElementById(site2).style.display = "none";
        document.getElementById(site2).style.display = "block";
        document.add.addSite2Line1.disabled=true;
    }
    else if (value=='no') {
        document.getElementById(site2).style.display = "inline";
        document.getElementById(site2).style.display = "none";
    }
}
}
    </script>
Run Code Online (Sandbox Code Playgroud)

并创建一个下拉框.它应该在没有被选中时显示

<label><span>Single Site?</span><Select name="field" onchange="showHide(this.selectedIndex);"></label>
 <Option value="yes">yes</option>
 <Option value="no">no</option>
 </Select><br /><br /><br /><br />
Run Code Online (Sandbox Code Playgroud)

但是当我运行页面时根本没有任何事情发生

Gle*_*hes 5

你正在传递selectedIndex,但是你正在检查它,好像它是值...尝试这样做:

<Select name="field" onchange="showHide(this.value);"></label>
Run Code Online (Sandbox Code Playgroud)

或者尝试在处理之前从项目中检索值:

function showHide(selectedIndex) {
    var value = document.getElementById("field").options[selectedIndex].value;

    if (value=='yes') {
        document.getElementById(site2).style.display = "none";
        document.getElementById(site2).style.display = "block";
        document.add.addSite2Line1.disabled=true;
    }
    else if (value=='no') {
        document.getElementById(site2).style.display = "inline";
        document.getElementById(site2).style.display = "none";
    }
}
Run Code Online (Sandbox Code Playgroud)

Slanec对getElementById(site2)vs 的评论getElementById("site2")也是有效的.如果没有看到页面的其他部分,很难分辨,但如果你没有在Javascript中声明的名为site2的变量,那么你可能会收到其他错误.