我是一个后端人,我们的前端人员刚刚离开,虽然我“认为”我解决了这个问题,但我想知道发生了什么事情。为什么我的'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