Pregunta

El código anterior funciona bien en todos los navegadores, excepto en IE8, donde solo funciona en modo de compatibilidad. Quité todo el marcado dentro de los Divs, allí donde enormes mesas. En IE8, cuando verifique la casilla de verificación ('RF'), se supone que muestra solo dos divs (#FRMRF y #FRMANTENAS), pero también muestra el div (#FRMTX), si crees que el marcado no está bien, es fue generado por Zend_Form, me gustaría no tener un oculto para cada casilla de verificación que creo.

 <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>
¿Fue útil?

Solución

En primer lugar, lo siento, no tengo idea de cómo comentar, no veo ningún botón para ello. Creo que he tenido un problema similar por un tiempo y he apagado por IE. Creo que esto es algo que, es decir, no maneja muy bien ... así que creo que deberías probar esto y ver si funciona:

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

Creo que SlideUp/Down hace lo mismo que mostrar y ocultar cosas ("lento"), así que lo ajusté.

Jaula

Editar:

Funcionó para mí cuando lo puse en línea y cambié su HTML a lo siguiente:

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

La cosa aquí es que estabas definiendo 'estilo' dos veces en el div, por lo que no se dio cuenta de la pantalla: ninguno; Respuesta editada después de comentar. Espero que esto lo resuelva

Jaula

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top