html - 为什么将 HTML 表单提交按钮命名为 "submit"会破坏内容?

标签 html form-submit http-post form-post

在 ASP.NET 网络表单和 ASP 3(经典 ASP)中,我遇到了一个问题,即命名您的表单提交按钮“提交”会“破坏事物”。下面是呈现的 HTML:

<input type="submit" name="Submit" value="Submit" id="Submit" />

我说“破坏事物”是因为我不确定究竟为什么或发生了什么。但症状通常是按下提交按钮有时什么也没做,即它不起作用。但有时它确实有效。

事实上,我只是用下面的代码构建了一个快速的单页测试,并且提交工作正常:

<form id="form1" runat="server">
<div>
    <asp:TextBox ID="txtTest" runat="server" />
    <asp:Button ID="Submit" runat="server" Text="Submit" />
</div>
</form>

但是,以前也出现过这个问题,重命名按钮总是让症状消失。

那么,任何 HTML/HTTP/浏览器专家都知道为什么在提交按钮上设置 id="submit"会导致任何问题吗?

编辑

这个SO comment似乎暗示“提交”是保留关键字。但是为什么“id”或“name”属性会干扰这个呢?这个“保留”关键字是如何以导致冲突的方式实现的?

再次感谢

最佳答案

form 元素有一个名为 submit 的方法,但也有表单中的表单元素作为成员。

如果您在名为 submit 的表单中有一个按钮,您可以使用 document.form1.submit 访问它。但是,由于它与 submit 方法同名,因此无法再访问该方法。如果您使用该方法提交表单,它将不再有效。

例如,如果您有一个使用 Javascript 提交表单的按钮,那将不起作用:

<input type="button" name="submit" onclick="this.form.submit();" value="try" />

当按钮尝试使用 submit 方法时,它将取而代之的是获取对自身的引用(并且在尝试调用它时会出现错误消息,因为按钮不是函数)。

关于html - 为什么将 HTML 表单提交按钮命名为 "submit"会破坏内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/876243/

相关文章:

c# - Post FromBody 始终为空

css - 如何为一个文本框设置.input[type=text]

php - 如何阻止表单提交按钮刷新页面?

javascript - 导航菜单翻译网页时水平滚动并溢出隐藏

javascript - 尝试用 greasemonkey 模拟按钮的点击

java - WICKET:控制更改 CheckBox 时组件的可见性

java - http POST 请求 JSON 对象中的空指针异常错误

通过 POST 使用请求库进行 python 身份验证

Javascript/将输入数据保存到表格单元格中

html - 使图像位置响应?