在 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/