我有一些代码适用于我的IIS 5.1开发框,但不适用于我们的IIS 6生产服务器或Firefox。我希望找到一些能够适应我们的生产服务器和Firefox的代码。
以下是发生的事情:
我有一个最初应显示为隐藏的标签。我基本上使用这个标签来隐藏整行。
<label for="lbCloseDate" id="lbCloseDate" style="display:none">
<tr>
<td bordercolor="#f0f0e4" bgcolor="#f0f0e4"><h3>Close Date</h3></td>
</tr>
</label>
然后,我根据组合框的值使用此javascript取消隐藏它:
function statusShowHide()
{
var cboStatus = document.getElementById('cboStatus');
var lbCloseDate = document.getElementById('lbCloseDate');
if cboStatus = 'Closed')
{
lbCloseDate.style.display = "";
}
}
基本上,Firefox和我们的prod服务器中发生的事情是标签/行没有隐藏。我没有错;它不是像我想要的那样被隐藏起来。
我不需要使用标签来隐藏行......这只是我知道的唯一方式。所以,如果更有利于实现同一目标,我会对此持开放态度。谢谢!
答案 0 :(得分:2)
你错过了(这里 还==用于比较,单=用于分配。
if (cboStatus == 'Closed')
{
lbCloseDate.style.display = "";
}
进入这个街区了吗?如果是这样,我建议改变.display =“”; to .display =“none”
你也可以给你的一个ID,然后用它来隐藏/显示行而不是标签。将在句法上更正确。
修改强>
这是一个工作示例的小提琴: http://jsfiddle.net/2FDPg/
以下是基础知识:
function showOrHideRow(){
var theRow = document.getElementById('closeRow');
var theDropDown = document.getElementById('ChangeMe');
var theVal = theDropDown.options[theDropDown.selectedIndex].value;
if(theVal == 'Closed'){
theRow.style.display = 'none';
}
else{
theRow.style.display = 'block';
}
}
和html:
<table>
<tr id="closeRow">
<td>Close Date:</td>
</tr>
<tr>
<td>another row</td>
</tr>
</table>
<select id="ChangeMe" onChange="showOrHideRow()">
<option value="">Change me</option>
<option value="Closed">Hide It</option>
<option value="Open">Don't Hide It</option>
</select>