有人能告诉我这段代码出了什么问题吗?我试图用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>

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


当前回答

抱歉回答晚了,但对于那些仍然面临同样错误的人。消除此错误:

<form method="POST">
  <input type="text"/>
  <input type="submit" id="submit-form" value="Submit Form" style="display: none;"/>
</form>

<!-- Other element that will submit the form -->
<button onclick="submitTheForm()">Submit the form</button>

<script>
function submitTheForm(){
  document.getElementById("submit-form").click();
}
</script>

解释:

javascript函数submitTheForm()正在访问提交输入元素并调用其上的click事件,从而导致表单提交。

这个解决方案是终身的,几乎100%兼容所有浏览器。

其他回答

我也有同样的问题,解决了我的问题,只需从提交按钮中删除name="submit"。

<button name='submit' value='Submit Payment' ></button>

改变

<button value='Submit Payment' ></button>

删除名称属性,希望它能工作

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

<input id="submit_value" type="button" name="submit_value" value="">

</form>

<script type="text/javascript">

document.getElementById("submit_value").onclick = submitAction;

function submitAction()
{
    document.getElementById("frmProduct").submit();
    return false;
}
</script>

编辑:我不小心交换了周围的id

抱歉回答晚了,但对于那些仍然面临同样错误的人。消除此错误:

<form method="POST">
  <input type="text"/>
  <input type="submit" id="submit-form" value="Submit Form" style="display: none;"/>
</form>

<!-- Other element that will submit the form -->
<button onclick="submitTheForm()">Submit the form</button>

<script>
function submitTheForm(){
  document.getElementById("submit-form").click();
}
</script>

解释:

javascript函数submitTheForm()正在访问提交输入元素并调用其上的click事件,从而导致表单提交。

这个解决方案是终身的,几乎100%兼容所有浏览器。

我的解决方案是设置按钮的“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();

〇解决方案 1.确保没有任何其他名称/id作为提交的元素。 2.尝试调用函数onClick = "return submitAction();" 3. . getelementbyid(“表单名称”)。submit ();