TypeError:e [h]不是函数

时间:2012-08-16 02:18:50

标签: javascript jquery

我一直在使用jquery 1.6没问题。今天我切换到jquery 1.8,突然间我在尝试提交表单时收到此错误:

TypeError: e[h] is not a function.

形式:

<form method="post" action="login?login" name="login" id="login">
<input class="input" type="text" name="user_mail" id="user_mail" autocomplete="on" />
<input class="input" type="password" name="password" id="password" autocomplete="off" />
<a class="green_button" href="javascript:void(0)" id="login_button">Login</a>
<input type="submit" name="login" id="submit" style="visibility:hidden" />
</form>
<script language="javascript">
$("#login_button").click(function(){
    $("#login").submit();   
});
</script>

我错过了什么吗?

谢谢!

6 个答案:

答案 0 :(得分:31)

删除下面的一行。

<input type="submit" name="login" id="submit" style="visibility:hidden" />

更新

或者如果您必须使用提交输入,则需要将ID submit更改为其他内容。原因是如果您有一个id submit的输入元素,它将使用HTMLInputElement为表单设置submit属性。因此,您无法在HTMLFormElement上调用.submit方法。

答案 1 :(得分:5)

我浪费了3个小时试图解决同样的问题,我使用name ='submit'作为我的提交按钮并且正在调用$(“#form_name”)。submit();在一个函数中,并得到了错误。有时我忽视的小事最终会浪费很多时间。

答案 2 :(得分:3)

我认为这是因为该行

<input type="submit" name="login" id="submit" style="visibility:hidden" />

你可以删除它并重试吗?

答案 3 :(得分:1)

当我们在表单中使用submit type元素时,此元素将被设置为表单的Submit属性。因此,无法使用表单的其他元素调用submit()函数。

有两种方法可以做到这一点。第一个是删除第一个回复中给出的行。

使用$(“#submit”)。触发(“点击”);而不是$(“#login”)。submit(); 。并且也会在按下输入关键字时提交表格。

答案 4 :(得分:0)

您的forminput具有相同的名称属性值login

name上的input更改为其他内容,例如submit。这应该可以解决你的错误。

答案 5 :(得分:0)

使用jQuery 1.7(可能也是上面的)如果你有name属性,也称为submit它将会中断。

E.g。

<input type="submit" name="submit" value="Upload">

然而不会起作用:

<input type="submit" name="sendSubmit" value="Upload">

很好。