Подтвердить что ты не робот

TypeError: '[object HTMLInputElement]' не является функцией (оценивая 'elem [type]()') в jQuery form.submit()

Никогда не сталкивался с этой проблемой? Я получаю эту ошибку в последней версии jQuery. Я пробовал с версией 1.6.2, и проблем нет.

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

line 3175

Что-нибудь изменилось, о чем мы должны знать?

Спасибо, Джек

4b9b3361

Ответ 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", что противоречиво заставляет его вернуть его как не являющуюся функцией.