16 ene. 2012

atributo styleId

Para empezar tengo que reconocer que no soy un gran fan del javascript, nunca le he dedicado tiempo y no se me da demasiado bien más allá de las 4 cosas básicas que he tenido que usar en algún momento. De todos modos me estoy topando con uno de esos errores que hacen que me hierba la sangre. Estoy cargando unos combos de manera dinámica usando ajax, por defecto los desarrollos que hago los pruebo sobre ie7 ya que es el navegador que tienen los usuarios instalado por defecto, pero como yo soy usuario de Chrome y Firefox también los tengo instalados en mi equipo y suelo hacer una pequeña prueba en alguno de ellos también. En una de estas pruebas adicionales y cuando creía que ya tenía el desarrollo finalizado me encuentro con que la misma llamada javascript solamente funciona en ie7, todo mi gozo en un pozo.

La sentencia de la discordia es ni más ni menos que un simple document.getElementById(), en ie7 recupera el objeto y en Chrome y en Firefox retorna null .... con lo cual al acceder al objeto se produce una excepción.

Después de una búsqueda en google y un rápido vistazo a los resultados me entero de que el ie tiene a "confundir" los atributos "name" e "id", pudiendo usar el método getElementById con referencia al valor de un atributo "name" mientras que en el resto de los navegadores es obligatorio que el campo id esté informado. Mi problema ahora pasa a ser de otro tipo ya que el campo que quiero recuperar es un <html:select> al que le indico el campo "property" para que cargue sus valores. Dicha etiqueta <html:select> no admite que se le establezca la propiedad id y por tanto no me permite recuperar con el getElementById su valor. Por suerte si existe se puede encontrar en la gran G y simplemente añadiendo a mi <html:select> la propiedad styleId ya me permite acceder desde cualquier navegador al campo y por tanto tener solucionado el problema.

Nunca te acostarás sin saber algo más.

Un saludo, Dani

No hay comentarios:

Publicar un comentario