Firefox / IE IIS 6不支持Javascript / HTML中的隐藏标签

时间:2011-10-26 19:56:03

标签: javascript dhtml

我有一些代码适用于我的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服务器中发生的事情是标签/行没有隐藏。我没有错;它不是像我想要的那样被隐藏起来。

我不需要使用标签来隐藏行......这只是我知道的唯一方式。所以,如果更有利于实现同一目标,我会对此持开放态度。谢谢!

1 个答案:

答案 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>