Foros del Web » Programación para mayores de 30 ;) » Java »

Por qué se desplazan los campos a la derecha cuando hay un error?

Estas en el tema de Por qué se desplazan los campos a la derecha cuando hay un error? en el foro de Java en Foros del Web. Tengo este código en una página JSP: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original <html: form action = "/recuperarPassword" >             ...
  #1 (permalink)  
Antiguo 23/04/2011, 09:57
 
Fecha de Ingreso: febrero-2011
Ubicación: España
Mensajes: 51
Antigüedad: 13 años, 2 meses
Puntos: 1
Por qué se desplazan los campos a la derecha cuando hay un error?

Tengo este código en una página JSP:

Código HTML:
Ver original
  1. <html:form action="/recuperarPassword">
  2.  
  3.             <table border="0">
  4.                 <tbody>
  5.                     <tr>
  6.                         <td colspan="2"><bean:write name="ModificarPasswordForm" property="mensaje" filter="false"/>&nbsp;</td>
  7.                     </tr>
  8.                     <tr>
  9.                         <td>Contraseña antigua</td>
  10.                         <td><html:password property="password"/></td>
  11.                     </tr>
  12.                     <tr>
  13.                         <td>Nueva contraseña</td>
  14.                         <td><html:password property="passwordNueva"/></td>
  15.                     </tr>
  16.                     <tr>
  17.                         <td>Nueva contraseña</td>
  18.                         <td><html:password property="passwordNueva2"/></td>
  19.                     </tr>
  20.                 </tbody>
  21.             </table>
  22.  
  23.         <html:submit value="Cambiar" />
  24.        
  25.         </html:form>

Como veis, cuando se produce un error, se escribe desde el bean un mensaje en la página web para que el usuario reintente la operación. Pues bien, todo funciona perfectamente salvo que los tres campos html se desplazan a la derecha varios centímetros cada vez que el usuario yerra en las acciones (introduce mal su password actual, las contraseñas nuevas no coinciden o no son alfanuméricas, etc.). A qué se puede deber esto?

Gracias!
  #2 (permalink)  
Antiguo 24/04/2011, 12:56
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Por qué se desplazan los campos a la derecha cuando hay un error?

Lo primero que tienes que hacer es ver el codigo HTML que se te genera, así sabrás exactamente qué produce el desfase, y de esa forma es más fácil saber por qué pasa.

También es importante comprobarlo con varios navegadores, ya que los navegadores no interpretan las cosas igual, y lo que en uno se ve bien, en otro puede dar problemas.

Una vez que identifiques el problema, para solucionarlo podrás hacerlo mediante css, javascript o con órdenes específicas para un navegador.

Para pelear con HTML y CSS, e incluso javascript, te recomiendo que uses el plugin FireBug de Firefox. Chrome también tiene un modo de depuración muy bueno.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 25/04/2011, 13:03
 
Fecha de Ingreso: febrero-2011
Ubicación: España
Mensajes: 51
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Por qué se desplazan los campos a la derecha cuando hay un error?

Hola Xerelo, gracias como siempre por tu respuesta!

No logro ver lo que sucede, he aquí el código HTML generado ANTES de hacer el SUBMIT:

Código HTML:
Ver original
  1. <form name="ModificarPasswordForm" method="post" action="/gestion-horas-empresa/recuperarPassword.do">
  2.  
  3.             <table border="0">
  4.  
  5.                 <tbody>
  6.                     <tr>
  7.                         <td colspan="2">&nbsp;</td>
  8.                     </tr>
  9.                     <tr>
  10.                         <td>Contraseña antigua</td>
  11.                         <td><input type="password" name="password" value=""></td>
  12.                     </tr>
  13.  
  14.                     <tr>
  15.                         <td>Nueva contraseña</td>
  16.                         <td><input type="password" name="passwordNueva" value=""></td>
  17.                     </tr>
  18.                     <tr>
  19.                         <td>Nueva contraseña</td>
  20.                         <td><input type="password" name="passwordNueva2" value=""></td>
  21.                     </tr>
  22.  
  23.                 </tbody>
  24.             </table>
  25.  
  26.         <input type="submit" value="Cambiar">
  27.        
  28.         </form>

He aquí el generado DESPUÉS de hacer el SUBMIT:

Código HTML:
Ver original
  1. <form name="ModificarPasswordForm" method="post" action="/gestion-horas-empresa/recuperarPassword.do">
  2.  
  3.             <table border="0">
  4.  
  5.                 <tbody>
  6.                     <tr>
  7.                         <td colspan="2"><span style='color:red'>Las contraseñas nuevas no coinciden. Repita la operación.</span>&nbsp;</td>
  8.                     </tr>
  9.                     <tr>
  10.                         <td>Contraseña antigua</td>
  11.                         <td><input type="password" name="password" value="02468"></td>
  12.                     </tr>
  13.  
  14.                     <tr>
  15.                         <td>Nueva contraseña</td>
  16.                         <td><input type="password" name="passwordNueva" value="12345"></td>
  17.                     </tr>
  18.                     <tr>
  19.                         <td>Nueva contraseña</td>
  20.                         <td><input type="password" name="passwordNueva2" value="1234"></td>
  21.                     </tr>
  22.  
  23.                 </tbody>
  24.             </table>
  25.  
  26.         <input type="submit" value="Cambiar">
  27.        
  28.         </form>

Los campos input, después de hacer el submit, aparecen desplazados varios centímetros a la derecha sin motivo aparente.

Un saludo y gracias!
  #4 (permalink)  
Antiguo 25/04/2011, 16:15
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Por qué se desplazan los campos a la derecha cuando hay un error?

Como puedes ver la única diferencia que hay entre uno y otro, es el texto que añades

Cita:
Las contraseñas nuevas no coinciden. Repita la operación.
Juntas dos celdas, y el resto de la tabla se tiene que distribuir para ocupar el mismo espacio que la celda superior.

Solución, dale tamaño fijo a la inferior (nombre del campo).

Si tienes que trabajar con interfaces web, java te facilita las cosas, pero necesitas conocer HTML y CSS. Para mí es la parte más aburrida y posiblemente más desesperante. Para estas cosas te podrán ayudar mejor en
http://www.forosdelweb.com/f36/

Una cosa, el maquetado mediante tablas es algo que ahora mismo no tiene muchos fans.

Artículo largo explicando los distintos usos

http://www.smashingmagazine.com/2009...l-to-div-hell/
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 26/04/2011, 12:40
 
Fecha de Ingreso: febrero-2011
Ubicación: España
Mensajes: 51
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Por qué se desplazan los campos a la derecha cuando hay un error?

Grande Xerelo!

He sacado el mensaje fuera de la tabla y funciona perfectamente!

Muchas gracias como siempre.

Etiquetas: campos, derecha, jsp-servlets
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 03:49.