RJS Error [object error] en IE al agregar filas a una tabla usando prototype
Publicado por Edgar González 22 Noviembre 2007 en AJAX, JavaScript, Rails, Ruby.En una aplicación rails estoy agregando filas (<tr>) a una tabla (<table>), vía un rjs:
RUBY:
-
page.insert_html :bottom, "my_table",
-
:partial => "my_row",
-
:collection => @entries,
-
:locals => { :user => @user, :foods => @foods }
La aplicación funciona bien en Firefox y Safari, pero en IE obtengo el error: RJS Error [object error]
Resulta que para variar es un bug en IE, y que se resuelve simplemente usando un <tbody>, es decir las filas se agregan al tbody y no a la tabla.
El html de mi tabla quedaría algo como:
Y el rjs es:
RUBY:
-
page.insert_html :bottom, "my_tbody",
-
:partial => "my_row",
-
:collection => @entries,
-
:locals => { :user => @user, :foods => @foods }
Si quieren más detalle revisen: IE fails to insert a table row using prototype
Ohh dios será esta la primera vez que no digo algo malo de IE, bueno aunque parece bug, realmente el spec HTML 4.x dice que la tabla DEBE tener tbody (http://www.w3.org/TR/html4/struct/tables.html#h-11.2.1) si no lo usas estas trabajando una tabla HTML 3, que por suerte trabaja bien en otros browsers, Que DOCTYPE tienen tus paginas web? Stritct o Transitional?
En efecto hay que usar más los thead y tbody, pero es que inclusive el DOCTYPE es "XHTML 1.0 Transitional"