为什么我在这个表单上得到'对象不是函数'?

时间:2012-01-12 11:11:14

标签: javascript html

当我提交this form时,我快速收到“对象不是函数”错误(在Chrome中),而表单提交时。什么是我的错误?

我确定这是愚蠢的事,但对于我的生活,我不明白这里有什么不对。

3 个答案:

答案 0 :(得分:4)

我刚刚将您的函数名称validate()更改为formVal(),现在它的工作正常 - 这是因为您有一个id为validate的元素。

将函数名称更改为formVal()(或除validate()之外的任何内容),然后将表单标记更改为:

<form onSubmit='return formVal();'>

现在说“有效!”在表单下方的标题标签中。也没有错误。

答案 1 :(得分:3)

你有'验证'功能,提交按钮有id'验证'。改变其中一个。

答案 2 :(得分:2)

其他答案都是正确的,但你可以通过更恰当地使用jQuery来避免所有这些麻烦。

不是在表单标记内部使用内联JavaScript,而是在表单中添加ID,然后使用以下代码:

$(document).ready(function() {
    $("#myform").bind("submit", validate);
});

现在表格应如下所示:

<form id="myform">

并且不要忘记将return false;添加到函数本身以防止提交。

当在函数内部时,JS会将validate正确地视为一个函数 - 当在form标签中内联时,它首先在表单元素中找到并找到按钮 - 因此你得到了错误。