2011-12-29 5 views
12

Nigdy nie napotkano na ten problem? Otrzymuję ten błąd w najnowszej wersji jQuery. Próbowałem z wersją 1.6.2 i nie ma problemu.TypeError: '[object HTMLInputElement]' nie jest funkcją (ocenianie 'elem [type]()') w jQuery form.submit()

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

line 3175 

Czy coś się zmieniło, o czym powinniśmy wiedzieć?

Dzięki Jack

+6

Czy możesz wyświetlić odpowiedni kod? –

+0

Wygląda bardziej na to, że gdzieś podajesz niewłaściwy argument. –

+0

Może wypróbuj '' '$ (form) .submit()' ''. –

Odpowiedz

37

Zwykle dzieje się, jeśli któryś z nazwą Twojego input tagu jest submit. Przykładowo

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

Na powyższym kodu document.getElementById("frm").submit przedstawia element input. Po zastosowaniu () do submit To pokazuje ten błąd.

+0

Dziękuję Shiplu, to było to, myślę, że muszę być bardziej ostrożny, jaką nazwę użyć podczas używania jQuery – juminoz

+3

@juminoz: To nie jest związane z jQuery, jest to ogólny problem JavaScript/DOM/zakres. –

+0

@FelixKling To może być prawda, ale ponieważ nie widziałem tego samego problemu w wersji 1.6.2, założyłem, że coś Mogło to się zmienić: – juminoz

3

Niedawno podobny problem z safari na trochę javascript do przesłania formularza. Okazało się, że przyczyną był element wejściowy submit z kodem name="submit", który powodował konflikt, powodując, że zwrócił go jako nie będący funkcją.

7

I odkryli, że ten błąd ma miejsce, gdy za pomocą atrybutu onclick wywołać funkcję JavaScript o nazwie takiej samej jak obu się idlubname atrybuty na zasadzie input element:

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

ten zachowanie występuje niezależnie od typu wejścia.

+0

To właśnie spowodowało błąd. Miałem pole wyboru jako takie: '' To działało poprawnie, gdy zmieniłem nazwę "nazwa" i Tagi "id": '' –

+0

Ten sam problem tutaj, dzięki za wskazanie konfliktów. – tangent

+0

zajęło mi wieki, aby znaleźć twoje rozwiązanie, ponieważ nikt nie napisał prawdziwego przykładu z identyfikatorami i nazwami. W przeciwnym razie ci ludzie zrozumieliby, że pasujące nazwy powodują ten błąd. wielkie dzięki! – Rikco

Powiązane problemy