当我提交this form时,我快速收到“对象不是函数”错误(在Chrome中),而表单提交时。什么是我的错误?
我确定这是愚蠢的事,但对于我的生活,我不明白这里有什么不对。
答案 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标签中内联时,它首先在表单元素中找到并找到按钮 - 因此你得到了错误。