Foros del Web » Creando para Internet » Diseño web »

Protesta contra error de FireFox

Estas en el tema de Protesta contra error de FireFox en el foro de Diseño web en Foros del Web. Este navegador me parecía simpático, pero le he encontrado una malcriadez que me ha molestado mucho, felizmente lo solucioné. Yo suelo hacer las cosas con ...
  #1 (permalink)  
Antiguo 20/09/2008, 19:19
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 10 años, 9 meses
Puntos: 67
Protesta contra error de FireFox

Este navegador me parecía simpático, pero le he encontrado una malcriadez que me ha molestado mucho, felizmente lo solucioné. Yo suelo hacer las cosas con ajax, y para hacer eso la mayoría de las veces referencio a los inputs, selects y demas mediante id, con el consabido getElementById, pero a veces también lo hago mediante el form, osea, dandole un nombre el form y a los campos. Bueno, el Firefox me pide que anteponga document al nombre de form lo cual es válido. Ok, todo bien, pero cuando hago esto, o sea, con formularios el botón que activa el proceso de la función ajax pues hace que se envíe el formulario. Y yo digo, por qué los respetables señores que han creado el Firefox le han puesto esa característica? Acaso todo botón debe ser un submit???? yo uso el <button>, ni siquiera uso el <input type="button"> el cual se supone que es también genérico, o sea, está diseñado para ejecutar una función JavaScript, con más razon el <button>. Qué les pasa? en qué estaban pensando? Está prohibido ahora según ellos ejecutar fuciones JavaScript y en consecuencia enviar formularios vía ajax???

Felizmente conseguí evitar el envio de este form poniendoles unos códigos, por si acaso a quienes les sirva:

<form onSubmit="return false">

Eso hace que nunca se envie el formulario, eso me salvó, pero no entiendo qué criterio usaron para implementar esta carácterística tan fuera de lugar en un navegador tan bueno como el Firefox.

El <input type="submi"> esá hecho para ese fin, enviar el form, y el <input type="button"> y el <button> Están hechos para darle interactividad al visitante mediante JavaScript, no para enviar formularios por defecto. Espero comenten esta participación.
  #2 (permalink)  
Antiguo 20/09/2008, 19:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.711
Antigüedad: 12 años, 7 meses
Puntos: 833
De acuerdo Respuesta: Protesta contra error de FireFox

Según Firefox es por ser getElementById el estándar de la W3C.

Personalmente (y solo personalmente) opino que un formulario semánticamente hablando no debería ser creado si el objetivo no es enviar datos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 20/09/2008, 19:40
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 10 años, 9 meses
Puntos: 67
Respuesta: Protesta contra error de FireFox

Esperaba una respuesta como esa, claro, la W3C, era de esperarse que fuera un estándar. Entonces la cosa es contra la W3C. No debería enviarse si deliberadamente yo no quiero enviarlo. Y eso se hace con el botón que explícitamente indica eso, o sea, el <input type="submit"> o mediante JavaScript.

Bien, gracias por tu respuesta, al menos sé ahora que no fue inciativa de los creadores del Firefox. Yo lo hago a veces con form porque es mas corto para referenciar, aunque con el Firefox da igual porque tengo que anteponer document. Bien, tendré que seguir con el DOM nomás.
  #4 (permalink)  
Antiguo 20/09/2008, 19:49
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.711
Antigüedad: 12 años, 7 meses
Puntos: 833
De acuerdo Respuesta: Protesta contra error de FireFox

Lo que veo que muchos suelen hacer es abreviar el document.getElementById (vaya que realmente es largo ) usando una función con un nombre corto (la más común de usar tal vez por fuerza de costumbre es $). Por ejemplo:
Código javascript:
Ver original
  1. function $(id) { return document.getElementById(id) }
Código javascript:
Ver original
  1. /* Una llamada clásica */
  2. document.getElementById("objeto").value = "";
  3. /* se convertiría en esto */
  4. $("objeto").value = "";
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 20/09/2008, 19:54
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 10 años, 9 meses
Puntos: 67
Respuesta: Protesta contra error de FireFox

Esa es la idea del Prototype, no? Genial, no sé como no se me ocurrió antes.
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 20:59.