2011-12-29 4 views
12

Non ha mai avuto questo problema? Sto ricevendo questo errore nell'ultima versione di jQuery. Ho provato con la versione 1.6.2 e non ci sono problemi.TypeError: '[object HTMLInputElement]' non è una funzione (la valutazione di 'elem [tipo]()') in jQuery form.submit()

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

line 3175 

È cambiato qualcosa di cui dovremmo essere a conoscenza?

Grazie, Jack

+6

puoi mostrare il codice rilevante? –

+0

Sembra più che tu stia passando un argomento sbagliato da qualche parte. –

+0

Forse prova '' '$ (form) .submit()' ''. –

risposta

37

Questo di solito accade se uno dei nome del vostro tag input è submit. Ad esempio,

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

Sulla codice precedente, document.getElementById("frm").submit rappresenta l'elemento input. Quando si applica () a submit Mostra questo errore.

+0

Grazie Shiplu. È stato così. Immagino di dover essere più attento a quale nome usare quando si usa jQuery – juminoz

+3

@juminoz: Questo non è correlato a jQuery, è un problema generale JavaScript/DOM/scope –

+0

@FelixKling Può essere vero, ma poiché non ho visto lo stesso problema nella versione 1.6.2, ho assunto che qualcosa – juminoz

3

Ho un problema simile con safari recentemente su un po 'di javascript per inviare un modulo. È risultato essere dovuto all'elemento di input di invio che ha il name="submit", che era in conflitto causando il ritorno come non essendo una funzione.

7

ho trovato che questo errore si verifica quando si utilizza l'attributo onclick per chiamare una funzione JavaScript con lo stesso nome sia le idoname attributi su un input elemento:

<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! --> 

Questo il comportamento si verifica indipendentemente dal tipo di input.

+0

Questo è esattamente ciò che causa l'errore per me. Avevo impostato una casella di controllo come: '' Ha funzionato correttamente una volta che ho rinominato il "nome" e Tag "id": '' –

+0

Lo stesso problema qui, grazie per aver segnalato i conflitti. – tangent

+0

ho impiegato anni per trovare la soluzione perché nessuno ha scritto un vero esempio con id e nomi .. altrimenti questi ragazzi si renderebbero conto che i nomi corrispondenti causano questo errore. molte grazie! – Rikco