2012-09-22 23 views
49

¿Alguien puede explicarme qué significa este error? Apreciaría mucho por cualquier tipo de ayuda con esto.Propiedad 'enviar' del objeto # <HTMLFormElement> no es una función

<form class="form" id="form" action="/mailer.php" method="post"> 

El código de Jquery que estoy utilizando es el siguiente.

$('#form').submit(); 
+1

Trate de usar '$ ('# form') [0] .submit();' 'O simplemente documento .getElementById ('form'). submit(); '.. Por cierto, tu código actual debería funcionar ... – techfoobar

+2

Parece que hay un conflicto en tu página, prototype/mootools/...? – undefined

+0

Voy a probar la primera opción en un solo momento. Segunda respuesta ... jquery.min.js –

Respuesta

138

Comprobar el formulario para ver si hay una HTMLInputElement con id o nombre es submit.

Esto establecerá una propiedad submit a la HTMLFormElement, por lo que la función submit que está en el prototipo del elemento de formulario no puede ser ejecutada.

Ejemplo:

<form class="form" id="form" action="/mailer.php" method="post"> 
    ​<input type="button" name="submit" value="go"/> 
</form>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

js:

​console.log($("#form")[0].submit)​;​ // will be the button element, not the submit function. 

método de jQuery .submit() llamará al .submit() en el elemento dom original, por lo sucederá el error.

+3

Hay una entrada 'simulada' tipo de entrada = "botón" nombre = "enviar" así que ... Eliminaré el nombre y veré si eso funciona. –

+0

@AndrewAllenWest Sí, esa debe ser la razón. – xdazz

+0

¡Eso hizo el truco! Muchas gracias. –

6

Si tiene un botón o entrada con el nombre de envío o id de envío, he visto errores en IE. Asegúrese de que sus entradas tengan el nombre correcto. Aquí hay un artículo en él http://bugs.jquery.com/ticket/1414

27

xdazz explicó bien el problema.

Puede utilizar un nativo presentar método de HTMLFormElement a trabajar en torno a un problema:

HTMLFormElement.prototype.submit.call($('#form')[0]); 
+3

Gracias montones! ¡Esto funcionó para mí! Irónicamente, esta respuesta no tiene votos. – JohnnyQ

+1

¡Gracias por la solución! Esto es genial para ejecutar formularios en la consola si tienen este problema ... Lo cual fue el caso en un formulario de comentarios de TI ... –

+0

¡Esta es una buena alternativa si la solución de xdazz no es suficiente! – Manatax

Cuestiones relacionadas