TypeError: '[object HTMLInputElement]' не является функцией (оценивая 'elem [type]()') в jQuery form.submit()
Никогда не сталкивался с этой проблемой? Я получаю эту ошибку в последней версии jQuery. Я пробовал с версией 1.6.2, и проблем нет.
TypeError: '[object HTMLInputElement]' is not a function (evaluating 'elem[ type ]()')
line 3175
Что-нибудь изменилось, о чем мы должны знать?
Спасибо,
Джек
Ответы
Ответ 1
Это обычно происходит, если любое из тэгов input
submit
.
Например,
<form id="frm">
<input type="submit" name="submit" value="Post" />
</form>
В приведенном выше коде document.getElementById("frm").submit
представляет элемент input
. Когда вы применяете ()
к submit
, он показывает эту ошибку.
Ответ 2
Я обнаружил, что эта ошибка возникает при использовании атрибута onclick
для вызова функции JavaScript с тем же именем, что и атрибуты id
или name
в элементе 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! -->
Такое поведение происходит независимо от типа ввода.
Ответ 3
У меня была аналогичная проблема с сафари в последнее время на немного javascript для отправки формы. Оказалось, что элемент ввода submit имеет name="submit"
, что противоречиво заставляет его вернуть его как не являющуюся функцией.