2011-12-29 69 views
12

從來沒有遇到過這個問題?我在最新版本的jQuery中遇到了這個錯誤。我試過版本1.6.2,沒有問題。TypeError:'[object HTMLInputElement]'不是jQuery中的函數(評估'elem [type]()')form.submit()

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

line 3175 

有什麼變化,我們應該知道嗎?

感謝, 傑克

+6

你能顯示相關的代碼嗎? – 2011-12-29 20:18:11

+0

看起來更像是你在某處傳遞錯誤的論點。 – 2011-12-29 20:21:56

+0

也許試試'''$(form).submit()'''。 – 2011-12-29 20:29:53

回答

37

這通常發生在您的任何input標籤的名字是submit。 例如,

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

在上面的代碼,document.getElementById("frm").submit表示input元件。當你申請()submit它顯示這個錯誤。

+0

感謝Shiplu。就是這樣。我想我必須更小心使用jQuery時使用的名稱。 – juminoz 2011-12-29 21:20:19

+3

@juminoz:這與jQuery無關,它是一個通用的JavaScript/DOM /範圍問題。 – 2011-12-29 21:55:41

+0

@FelixKling這可能是真的,但由於我在1.6.2版中沒有看到相同的問題,我認爲某些東西 – juminoz 2011-12-29 23:04:30

3

我最近有一個類似的問題,Safari瀏覽器提交了一個表單。原因是提交input元素的name="submit",這是衝突導致它返回它作爲一個函數。

7

我發現,使用onclick屬性來訪問具有相同名稱的JavaScript函數,如要麼input元素的idname屬性時,會出現此錯誤:

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

這行爲發生與輸入類型無關。

+0

這正是導致我錯誤的原因。我有一個複選框設置爲: '' 一旦我重命名「名稱」 「id」標籤: '' – 2015-01-28 15:30:18

+0

同樣的問題在這裏,謝謝指出衝突。 – tangent 2015-04-20 21:59:05

+0

花了我很多時間找到你的解決方案,因爲沒有人用ID和名字寫了一個真實的例子..否則這些人會意識到,匹配的名稱會導致這個錯誤。非常感謝! – Rikco 2017-04-26 17:26:52

相關問題