1

可能重复:
提交不是 javascript 中的函数

我正在尝试使用 JS 提交表单,但没有运气。这是代码。JSFIDDLE

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript">
    function validate () {
        alert('start');        
        $('#myform').submit();
        alert('end');        
    }
    </script>
</head>
<body>
    <form id="myform" name="myform" method="post" action="">
        <input type="button" value="submit" id="submit" onclick="validate();" >
    </form>
</body>
</html>

问题是“为什么它不起作用? ”。

4

5 回答 5

10

您有一个 idsubmit与表单方法冲突的表单元素,submit请将提交按钮 id 更改为其他内容。

您可以将表单元素作为表单对象的属性访问,因此如果您有一个表单,例如 myForm,并且表单中的输入带有 id 或名称 submit,那么 myForm.submit 将是带有 id 提交的输入元素,而不是原始的提交方法。

http://jsfiddle.net/4kg8c/1/

于 2012-10-13T19:40:03.410 回答
3

控制台中的错误是

Uncaught TypeError: Property 'submit' of object #<HTMLFormElement> is not a function 

问题是您通过命名元素提交来劫持 sumit() 函数。将按钮的 id 更改为 btnSubmit。

于 2012-10-13T19:42:26.090 回答
1

我已经使用解决方案修改了您的代码。

提交按钮的名称丢失。并且不要使用名称作为提交的“提交”。它与JS冲突。

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">
    function validate () {
        document.myform.submit();   
    }
    </script>
</head>
<body>
    <form id="myform" name="myform" method="post" action="">
        <input type="button" name="save" value="submit" id="submit" onclick="validate();" >
    </form>
</body>
</html>
于 2012-10-13T19:41:07.737 回答
0

如果这是您编写的确切代码,那么我认为您没有在页面中包含 jQuery 库。

您需要先包含 jQuery 文件,然后才能使用该$("#myform")符号。

还要指定一些您要将页面提交到的操作 URL?

于 2012-10-13T19:39:50.850 回答
-1

您使用 jQuery 代码($函数),但不包含 jQuery 源代码。

于 2012-10-13T19:38:16.490 回答