我是一個後端人,我們的前端人員剛剛離開,雖然我「認爲」我解決了這個問題,但我想知道發生了什麼事情。爲什麼我的'type'屬性沒有被「看到」?
所以我得到這個錯誤,從腳本Uncaught TypeError: Cannot read property 'indexOf' of undefined
- 在鉻39.0.2171.65
瀏覽器給我看了這條線是造成該問題:if (type.indexOf('select') == 0)
,從中我明白,type
是不確定的。
那麼什麼是type
?
$('form :input[type!=hidden][type!=submit]').each(function() {
...
var type = $(this).attr('type');
...
}
我調試了我的元素,結果發現其中有16個。
當他們中的每一個運行此$(this).attr('type')
聲明,我得到這個錯誤Uncaught TypeError: undefined is not a function
和$(this).type
回報undefined
,雖然this.type
定義並具有適當的值,如果我用這條線,一切都似乎是工作作爲預期。
這個問題可能是由於jQuery-ui的升級,從1.8到1.11,但我真的不知道,並且這http://api.jquery.com/attr/網站也沒有說清楚。
所以我想知道,如果可能的話,這可能是如何工作的,如果我使用的修復程序足夠好,或者我是否應該做其他事情。
將$(this).attr('type')'更改爲'$(this).prop('type')'。 – 2014-12-03 18:08:42
有可能您的一些輸入沒有設置類型? – 2014-12-03 18:11:46
'this.type'是檢查輸入類型的最合適的方法,真的不需要在這裏使用任何jQuery對象 – 2014-12-03 18:11:48