我具有以下功能,希望隐藏表单中的某些文本输入字段。我要隐藏的所有字段都包含在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>


并创建一个下拉框。当选择否时它应该显示

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


但是,当我运行页面时,什么也没有发生

最佳答案

您传递的是selectedIndex,但您正在检查它是否像它的值一样……请尝试以下操作:

<Select name="field" onchange="showHide(this.value);"></label>


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

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";
    }
}


Slanec关于getElementById(site2) vs getElementById("site2")的评论也是有效的。看不到页面的其余部分很难分辨,但是如果您没有在Javascript中声明名为site2的变量,则可能会收到其他错误。

07-24 16:36