有人能告诉我这段代码出了什么问题吗?我尝试使用JavaScript提交表单,但显示错误“.submit不是函数”。有关代码的更多详细信息,请参见下文:
<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>
两个都向我显示了同样的错误:(
答案 0 :(得分:632)
提交不是功能
表示您将提交按钮或其他元素命名为submit
。将按钮重命名为btnSubmit
,您的通话将神奇地工作。
当您将按钮命名为submit时,您将覆盖表单上的submit()
函数。
答案 1 :(得分:11)
<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>
编辑:我不小心换了身份证的
答案 2 :(得分:7)
确保没有其他具有相同名称的表单,并确保表单中没有name =“submit”或id =“submit”。
答案 3 :(得分:5)
当我使用母版页创建MVC应用程序时,我遇到了同样的问题。 尝试使用“提交”作为上面提到的名称寻找元素但事实并非如此。
对于我的情况,它在我的页面上创建了多个标签,因此有一些问题引用了正确的表单。
要解决这个问题,我会让按钮处理要使用的表单对象:
onclick="return SubmitForm(this.form)"
和js:
function SubmitForm(frm) {
frm.submit();
}
答案 4 :(得分:5)
如果您没有机会更改cell.people = self.memory.personEntities.flatMap({$0})
,您也可以通过以下方式提交表单:
name="submit"
答案 5 :(得分:2)
为表单元素提供提交名称将简单地影响提交属性。 确保您没有名称为submit的表单元素,并且您应该可以正常访问提交函数。
答案 6 :(得分:2)
本主题已有很多答案,但对我来说效果最好(最简单 - 一行!)的是对Neil E. Pearson 2013年4月21日发表的评论的修改:
如果你的提交按钮被#submit困住,你可以通过窃取另一个表单实例的submit()方法来绕过它。
我对他的方法的修改,以及对我有用的东西:
document.createElement('form').submit.call(document.getElementById(frmProduct));
答案 7 :(得分:2)
实际上,解决方案非常简单...
原文:
<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>
解决方案:
<form action="product.php" method="get" name="frmProduct" id="frmProduct"
enctype="multipart/form-data">
</form>
<!-- Place the button here -->
<input onclick="submitAction()" id="submit_value" type="button"
name="submit_value" value="">
<script type="text/javascript">
function submitAction()
{
document.frmProduct.submit();
}
</script>
答案 8 :(得分:2)
很抱歉回答晚了,但对于那些仍然面临同样错误的人。摆脱这个错误:
<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()
正在访问提交 input
元素并调用其上的点击事件,从而导致 form
提交。
这个解决方案是终身的,并且几乎 100% 兼容所有浏览器。
答案 9 :(得分:1)
可能的解决方案 -
1.确保您没有任何其他名称/ ID为提交的元素
2.尝试将该功能称为onClick = "return submitAction();"
3。document.getElementById("form-name").submit();
答案 10 :(得分:0)
我使用的是
var enviar = document.getElementById("enviar");
enviar.type = "submit";
因为其他一切都不起作用。
答案 11 :(得分:0)
我的解决方案是设置&#34;表格&#34;按钮的属性
text
或是js:
gx <-
ggplot(mtl
, aes(Var1, Var2
, fill = Correlation
, text = paste("P-val = ", round(`P-Value`, 4)))) +
geom_tile() +
scale_fill_gradient(low = "cyan", high = "red")
ggplotly(gx)
答案 12 :(得分:0)
您应该使用以下代码:
$(document).on("ready", function () {
document.frmProduct.submit();
});
答案 13 :(得分:0)
我遇到了同样的问题,并且解决了我的问题,只需从提交按钮中删除name =“ submit”。
<button name='submit' value='Submit Payment' ></button>
更改为
<button value='Submit Payment' ></button>
删除名称属性,希望它能正常工作
答案 14 :(得分:-1)
你可以尝试
<form action="product.php" method="get" name="frmProduct" id="frmProduct" enctype="multipart/form-data">
<input onclick="submitAction(this)" id="submit_value" type="button" name="submit_value" value="">
</form>
<script type="text/javascript">
function submitAction(element)
{
element.form.submit();
}
</script>
您是否有多个同名的表格?
答案 15 :(得分:-1)
使用getElementById:
document.getElementById ('frmProduct').submit ()