03 Feb 2006

Confusion de la función Submit

Mi nueva obsesión es Javascript, y ahora mientras programaba una función para validar una forma me di cuenta de algo que parece un extraño bug en Firefox.

Lo que se hace en estos casos es interceptar el envío con javascript mediante el evento onSubmit, se hacen las validaciones necesarias en una función aparte y después — si es pertinente— se reanuda el envío mediante el método submit() del objeto form. Un formulario de ejemplo:

Asi todo funciona perfectamente, pero si añadimos un atributo name="submit" al botón de envíar todo se complica. En este caso f.submit() me da un error que dice f.submit is not a function puesto que firefox está refiriendose al dichoso botón en lugar de referirse al metodo submit().

Sé que la respuesta más obvia es cambiar ese atributo name por cualquier otra cosa, pero en el script en el que estoy trabajando esa es una opción, ya que no tendré control sobre el formulario sobre el que se ejecutara el script. Siendo asi, no tengo idea como solucionar este pequeño problemilla.

¿Hay en la audiencia algun gurú de javascript que quiera ayudarme?

Acabas de leer «Confusion de la función Submit», un post escrito por sosa a medio día archivado en la categoría programacion.

fael #1 | Febrero 3, 2006 08:42 PM fael dice:

como no soy un guru, entonces no te iba a contestar.. pero cómo dejarte morir solo? jeje
el problema no es tan difícil.. como lo planteas probablemente sí se complique un poco, pero es cuestión de reestructurar las cosas
prueba con lo siguiente:

function validar(e){
// validación
valida = false;
if(valida){
return true;
} else {
return false;
}
}

y el form quedaría así
form action=”process.php” onsubmit=”return validar();”

y ya, todo debe quedar bien.

un saludo

txamu #2 | Febrero 5, 2006 08:51 AM txamu dice:

Y si en lugar del atributo name usas id y te refieres a el con el DOM ?

document.getElementById(“submit”).submit();

Aunque personalmente, me quedo con la opción de Fael, siempre lo he hecho así

Sergio #3 | Mayo 23, 2006 06:07 AM Sergio dice:

Yo tenía el mismo problema y ni siquiera usando document.getElementById chutaba, la opción Fael me ha salvado.
Gracias.

carlos Chile #4 | Agosto 28, 2006 01:09 PM carlos Chile dice:

muchas gracias Fael, tenia exactamente el mismo problema y me lo solucionaste, Dios te bendiga :p.

muchas gracias tambien a todos aquellos que hacen posible q este sitio siga en pie.

Contribuye a la discusión

  • Si quieres puedes tener una imagen que te distinga cuando comentes utilizando el servicio de Gravatar
  • Todo post ofensívo y/o ajeno a la discusión será eliminado inmediatamente
  • El HTML no está permitido, pero puedes formatear usando la sintáxis de Textile
  • Si quieres decirme algo privado ;) puedes utilizar la forma de contacto