Javascript 通过包含名为submit的隐藏字段的submit事件提交表单
我有一个html表单,其中包含一个隐藏的输入元素,该元素具有Javascript 通过包含名为submit的隐藏字段的submit事件提交表单,javascript,html,web,Javascript,Html,Web,我有一个html表单,其中包含一个隐藏的输入元素,该元素具有name=“submit”: 当我将输入名称更改为除name=“submit”以外的任何其他名称时,将提交表单: <form method="post" action="url.php"> <input type="text" name="sometext" /> <input type="hidden" name="othername" value="go" /> </form> &
name=“submit”
:
当我将输入名称更改为除name=“submit”
以外的任何其他名称时,将提交表单:
<form method="post" action="url.php">
<input type="text" name="sometext" />
<input type="hidden" name="othername" value="go" />
</form>
<button id="link">Click</button>
<script>
$("#link").click(function() {
$("form").get(0).submit();
});
</script>
点击
$(“#链接”)。单击(函数(){
$(“表单”).get(0.submit();
});
问题是,当隐藏输入具有
name=“submit”
?时,为什么不提交表单?您不能指定元素提交的名称。这是一种丁字型内模。正如您可能知道的,它会将表单的所有元素发送到操作。如果可能的话,我建议使用它调用PHP函数。submit()函数正在检查主要导致问题的“submit”按钮。如果您将其他内容命名为“提交”,则会检查输入数据 您不能指定元素提交的名称。这是一种丁字型内模。正如您可能知道的,它会将表单的所有元素发送到操作。如果可能的话,我建议使用它调用PHP函数。submit()函数正在检查主要导致问题的“submit”按钮。如果您将其他内容命名为“提交”,则会检查输入数据 根据:
命名输入作为属性添加到其所有者表单实例中,如果它们共享相同的名称,则可以覆盖本机属性(例如,具有名为action的输入的表单的action属性将返回该输入,而不是表单的action HTML属性)
因此,当您将按钮命名为submit
时,将使用按钮的DOM对象覆盖表单的本机submit
函数。因此,您对form.submit()
的调用最终相当于form.elements.submit.submit()
,它作为form.elements.submit.submit()失败,实际上是未定义的,具体如下:
命名输入作为属性添加到其所有者表单实例中,如果它们共享相同的名称,则可以覆盖本机属性(例如,具有名为action的输入的表单的action属性将返回该输入,而不是表单的action HTML属性)
因此,当您将按钮命名为submit
时,将使用按钮的DOM对象覆盖表单的本机submit
函数。因此,您对form.submit()
的调用最终相当于form.elements.submit.submit()
,它失败为form.elements.submit.submit
实际上是未定义的
没有id为链接的元素:$(“#链接”)
。您在这里看到任何错误吗?请编辑您的问题并添加您正在谈论的错误。告诉你的医生你感到疼痛和告诉他/她疼痛的位置是不同的:)没有id为链接的元素:$(“#链接”)
。你在这里看到任何错误吗?请编辑您的问题并添加您正在谈论的错误。告诉你的医生你感到疼痛和告诉他/她疼痛的部位是有区别的:)
$("#link").click(function() {
$("form").get(0).submit();
});
<form method="post" action="url.php">
<input type="text" name="sometext" />
<input type="hidden" name="othername" value="go" />
</form>
<button id="link">Click</button>
<script>
$("#link").click(function() {
$("form").get(0).submit();
});
</script>