Foros del Web » Programando para Internet » Javascript »

problema entre navegadores al hacer js + css

Estas en el tema de problema entre navegadores al hacer js + css en el foro de Javascript en Foros del Web. Que tal, tratando de provocar un efecto de show/hide en un formulario html me topé con mucho problemas al visualizarlo en diferentes navegadores y quiero ...
  #1 (permalink)  
Antiguo 11/09/2006, 13:13
 
Fecha de Ingreso: septiembre-2002
Ubicación: México
Mensajes: 356
Antigüedad: 21 años, 7 meses
Puntos: 0
problema entre navegadores al hacer js + css

Que tal, tratando de provocar un efecto de show/hide en un formulario html me topé con mucho problemas al visualizarlo en diferentes navegadores y quiero saber cual es la opción estandar para hacer esto.

Lo que tengo de inicio es un formulario, en el cual, entre otras cosas, tengo un elemento <select> y dos <tr> en la tabla con un id propio cada uno, del tipo
<tr style="display:none;" id="muestraAutor">.

Con el método onChange del select mando a llamar a una función con la cual dependiendo de la opción elegida quiero cambiar la propiedad display del <tr> a "block".

El problema es que en Firefox al hacer el cambio, me muestra los elementos, pero al elegir otro elemento y esconder los <tr> queda el hueco, mismo que se vá acumulando al elegir nuevamente la opción que debe mostrarlos, pues aparecen nuevamente, pero el hueco que dejaron sigue manteniendose y se incrementa con cada oportunidad en que decido esconderlos.
Además de esto, las línea salen completamente desubicadas de la posición original.

En Opera no sucede el efecto del hueco pero igualmente salen las líneas completamente desconfiguradas.

Solo en IExplorer hace el efecto tal y cual lo deseo ya que solamente aparecen y desaparecen y su ubicación conserva la posición original.

busca.htm
Código HTML:
<script type="text/javascript" language="javascript">
function muestraLineas()
{
   seccion = document.getElementById('seccion').value;
   autor  = document.getElementById('muestraAutor');
   editorial = document.getElementById('muestraEditorial');

   if(seccion == 3)
   {
       autor.style.display = "block";
       editorial.style.display = "block";  
   }else{
       autor.style.display = "none";
       editorial.style.display = "none";  
   }
}
</script>

...

<select name="seccion" id="seccion" onChange="muestraLineas();">
<option>....</option>
</select>

<tr id="muestraAutor" style="display:none;">
<td> elementos del formulario...</td>
</tr>

<tr id="muestraEditorial" style="display:none;">
<td> elementos del formulario...</td>
</tr> 

Saludos!

Última edición por yacatl; 11/09/2006 a las 13:26
  #2 (permalink)  
Antiguo 12/09/2006, 08:57
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola yacatl

Prueba poniendolo así:
Código PHP:
   if(seccion == 3)
   {
       
autor.style.display "";
       
editorial.style.display "";  
   }else{ 
Has puesto seccion al <select> y también a una variable, deberías cambiar uno de los dos, porque parece que IE se lía un poco.

Saludos,
  #3 (permalink)  
Antiguo 15/09/2006, 13:44
 
Fecha de Ingreso: septiembre-2002
Ubicación: México
Mensajes: 356
Antigüedad: 21 años, 7 meses
Puntos: 0
muchas gracias Javier, haré lo que me propones.
Saludos!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:44.