2011-12-29 15 views
12

¿Alguna vez se ha encontrado con este problema? Recibo este error en la última versión de jQuery. Intenté con la versión 1.6.2 y no hay problema.TypeError: '[objeto HTMLInputElement]' no es una función (evaluando 'elem [tipo]()') en jQuery form.submit()

TypeError: '[object HTMLInputElement]' is not a function (evaluating 'elem[ type ]()') 

line 3175 

¿Ha cambiado algo que debemos tener en cuenta?

Gracias, Jack

+6

¿Puedes mostrar el código correspondiente? –

+0

Parece más como si estuvieras pasando un argumento equivocado a alguna parte. –

+0

Quizás intente '' '$ (form) .submit()' ''. –

Respuesta

37

Esto suele ocurrir si alguno de su nombre de la etiqueta es inputsubmit. Por ejemplo,

<form id="frm"> 
    <input type="submit" name="submit" value="Post" /> 
</form> 

En el código anterior, document.getElementById("frm").submit representa el elemento input. Cuando aplica () a submit Muestra este error.

+0

Gracias Shiplu. Eso fue todo. Creo que tengo que tener más cuidado con el nombre que se debe usar al usar jQuery – juminoz

+3

@juminoz: Eso no está relacionado con jQuery, es un problema general de JavaScript/DOM/scope –

+0

@FelixKling Eso puede ser cierto, pero como no vi el mismo problema en la versión 1.6.2, asumí que algo podría haber cambiado. – juminoz

3

Tuve un problema similar con safari recientemente en un poco de javascript para enviar un formulario. Resultó ser debido al elemento de entrada Enviar que tiene el name="submit", que estaba en conflicto, lo que hace que lo devuelva como una función.

7

he encontrado que se producirá este error cuando se utiliza el atributo onclick para llamar a una función de JavaScript con el mismo nombre que ya sea los idoname atributos en un elemento input:

<input id='foo' name='fooName' onclick='foo();'> <!-- BAD: id matches function --> 

<input id='fooId' name='foo' onclick='foo();'> <!-- BAD: name matches function --> 

<input id='fooId' name='fooName' onclick='foo();'> <!-- WORKS! --> 

Este el comportamiento ocurre independientemente del tipo de entrada.

+0

Esto es exactamente lo que estaba causando el error para mí. Tuve una configuración de casilla de verificación como tal: '' Funcionó correctamente una vez que renombré el "nombre" y "id" tags: '' –

+0

Mismo problema aquí, gracias por señalar los conflictos. – tangent

+0

me llevó años encontrar la solución porque nadie escribió un ejemplo real con identificadores y nombres ... de lo contrario, estos tipos se darían cuenta de que los nombres coincidentes causan este error. ¡muchas gracias! – Rikco

Cuestiones relacionadas