上述代码适用于所有浏览器,但在IE8中只适用于兼容模式。我删除了DIV中的所有标记,那里有巨大的TABLE。 在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>
答案 0 :(得分:1)
首先对不起,我不知道怎么评论,没有看到任何按钮。 我想我有一段时间有类似的问题,我已经关闭了IE的slidedown。我认为这只是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与显示和隐藏内容(“慢”)相同,所以我调整了它。
Lauw
编辑:
当我将它上线并将您的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上定义了两次'style',所以它没有抓住显示:none; 评论后编辑回答。 希望这能解决它,
Lauw