以上代码在所有浏览器中都很好地工作,除了IE8中仅适用于兼容模式。我删除了Divs内部的所有标记,那里的桌子很大。在IE8中,当我选中复选框('rf')时,它仅显示两个Divs(#FRMRF和#FRMANTENAS),但是它也显示为DIV(#FRMTX),如果您认为标记不正常,则是由zend_form生成的,我想为我创建的每个复选框都没有隐藏的东西。

 <script>
$('input[name="rf"]').change(function(){
    if($(this).is(':checked')){
        $("#frmRF").show();
        $("#frmAntenas").slideDown();
    }else{
        $("#frmRF").slideUp('slow');
        if(!$('input[name="tx"]').is(':checked'))
            $("#frmAntenas").slideUp('slow');
    }
});
</script>

<TABLE>
<TR>
    <TD>
        <INPUT value=0 type=hidden name=rf ><INPUT id=rf value=1 type=checkbox name=rf> <FONT class=legenda>RF</FONT>
    </TD>
</TR>
</TABLE>

<div id=frmAntenas style="display:none;">
<fieldset> 
<legend>Especificações Técnicas da Solicitante:</legend>

    <div style='margin-top: 10px' id='frmRF' style="display:none;">

    </div>

    <div style='margin-top: 10px' id='frmTX' style="display:none;">

    </div>

</fieldset> 
</div>
有帮助吗?

解决方案

首先,对不起,我不知道如何发表评论,看不到任何按钮。我认为我有一段时间有类似的问题,我已经关闭了IE的滑动。我认为这只是IE的处理不佳。因此,我认为您应该尝试一下,看看它是否有效:

   <script>
    $('input[name="rf"]').change(function(){
    var speed  = $.browser.msie ? 0 : "slow";
        if($(this).is(':checked')){
            $("#frmRF").show();
            $("#frmAntenas").show(speed);
        }else{
            $("#frmRF").hide(speed);
            if(!$('input[name="tx"]').is(':checked'))
                $("#frmAntenas").hide(speed);
        }
    });
    </script>

我相信Slideup/Down的作用与显示和隐藏的内容相同(“慢”),因此我对此进行了调整。

编辑:

当我将其放在网上并将您的HTML更改为以下内容时,它对我有用:

<div id=frmAntenas style="display:none;">
<fieldset> 
<legend>Especificações Técnicas da Solicitante:</legend>

    <div id='frmRF' style="display:none; margin-top: 10px">

    </div>

    <div id='frmTX' style="display:none; margin-top: 10px">

    </div>

</fieldset> 
</div>

这里的问题是您在DIV上两次定义“样式”,因此它没有抓住显示:无;评论后编辑的答案。希望这能解决,

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top