Javascript 类型错误:e[h]不是一个函数
我一直在使用jQuery1.6,没有问题。今天我切换到jquery 1.8,在尝试提交表单时突然出现以下错误:Javascript 类型错误:e[h]不是一个函数,javascript,jquery,Javascript,Jquery,我一直在使用jQuery1.6,没有问题。今天我切换到jquery 1.8,在尝试提交表单时突然出现以下错误: TypeError: e[h] is not a function. 表格: $(“#登录按钮”)。单击(函数(){ $(“#登录”).submit(); }); 我错过什么了吗 谢谢 删除下面的行 <input type="submit" name="login" id="submit" style="visibility:hidden" /> 更新: 或者,
TypeError: e[h] is not a function.
表格:
$(“#登录按钮”)。单击(函数(){
$(“#登录”).submit();
});
我错过什么了吗
谢谢 删除下面的行
<input type="submit" name="login" id="submit" style="visibility:hidden" />
更新:
或者,如果必须使用提交输入,则需要将id
submit
更改为其他内容。原因是如果您有一个id为submit
的id
的输入元素,它将为带有HTMLInputElement的表单设置一个submit
属性。因此,您无法在HTMLFormElement上调用.submit
方法。您的表单
和输入
具有相同的名称属性值,登录
将
输入
上的名称
更改为其他内容,如提交
。这应该可以消除您的错误。我想这是因为
<input type="submit" name="login" id="submit" style="visibility:hidden" />
您可以删除它并重试吗?我花了3个小时试图解决同一问题,我使用了名称class='submit'作为我的提交按钮,并调用$(“#form_name”).submit();在函数中,正在获取错误。有时我忽略的小事情最终会浪费很多时间。当我们在表单中使用submit类型元素时,该元素将被设置为表单的submit属性。因此,无法使用表单的其他元素调用submit()函数 有两种方法可以做到这一点。第一个是删除第一个答复中给出的行 或者使用$(“#提交”)。触发(“单击”);而不是$(“#login”).submit()。按enter关键字时,它也将提交表单。使用jQuery 1.7(也可能在上面),如果您有
name
属性,也称为提交
,它将中断
例如
但是,这将不起作用:
很好。我补充了这一点,因为有些浏览器不会在enter时提交。没有那一行,我怎么能做到呢?@Apog:你不必删除元素,只需将ID更改为
submit
。Chrome中的错误信息更有帮助:uncaughttypeerror:object的属性“submit”不是一个像符咒一样工作的函数。谢谢@FelixKling这是真的,我认为jQuery可以通过使用HTMLFormElement.prototype.submit.call(表单)
来防止这种问题,但无论如何,使用submit
的id是不好的。请注意:当使用name=“submit”时,与OP描述的问题相同,不仅idit没有给我一个错误,而且当我点击链接时什么也没发生。有很多人抱怨jquery表单问题,大多数人都有一个id为“submit”的元素,您不需要删除该行。只需将“id”属性的值更改为其他值。您所说的浪费是什么意思?如果苹果公司投资1000小时来制造一个新的手机玻璃,或者特斯拉公司投资10000小时来制造一种新型充电器,这是浪费时间吗?我的意思是,我没有从我的错误中学到任何新东西。但你知道,不学任何东西是浪费时间。我知道你的意思这是一个程序员做了一千次你已经知道的事情却什么都没有学到的不好的一面…这就是为什么有些项目运行得很慢的原因:因为他们没有给你任何新的东西来享受…然后这会导致在简单的事情上出错…哦,好吧:)
<input type="submit" name="login" id="submit" style="visibility:hidden" />