我有以下功能,我想隐藏表单中的一些文本输入字段。我想隐藏的所有字段都包含在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 />
然而,当我运行页面时,根本没有任何事情发生
答案 0 :(得分:5)
你正在传递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的变量,那么你可能会收到其他错误。
答案 1 :(得分:-1)
非常简单,只需要在
之前删除额外的大括号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";
}
}