有人能告诉我这段代码出了什么问题吗?我试图用JavaScript提交一个表单,但是一个错误”。提交不是一个函数”。查看下面的代码的更多细节:

<form action="product.php" method="get" name="frmProduct" id="frmProduct" enctype="multipart/form-data">

<input onclick="submitAction()" id="submit_value" type="button" name="submit_value" value="">

</form>

<script type="text/javascript">
    function submitAction()
    {
        document.frmProduct.submit();
    }
</script>

我还试过这个:

<script type="text/javascript">
    function submitAction()
    {
        document.forms["frmProduct"].submit();
    }
</script>

两者都显示了相同的错误:(


当前回答

给表单元素一个名称submit将简单地掩盖submit属性。 确保表单元素中没有名称为submit的元素,这样就可以很好地访问submit函数。

其他回答

使用getElementById:

document.getElementById ('frmProduct').submit ()

Submit不是一个函数

表示将提交按钮或其他元素命名为submit。将按钮重命名为btnSubmit,您的调用将神奇地工作。

当将按钮命名为submit时,将重写表单上的submit()函数。

我用的是

var enviar = document.getElementById("enviar");
enviar.type = "submit"; 

只是因为其他一切都不管用。

我的解决方案是设置按钮的“form”属性

<form id="form_id_name"><button name="btnSubmit" form="form_id_name" /></form>

或者是js:

YOURFORMOBJ.getElementsByTagName("button")[0].setAttribute("form", "form_id_name");
YOURFORMOBJ.submit();

如果表单没有<button type="submit">submit</button>. submit()将不起作用。表单元素属于HTMLFormElement接口,因此,我们可以直接从prototype调用,这个方法对任何表单元素都有效。

HTMLFormElement.prototype.submit.call(form)