在ASP.NET WebForms和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 =上一个提交按钮 “提交” 会造成什么问题?

修改

SO评论似乎暗示“提交”是一个保留关键字。但是,为什么在“ID”或“名”的属性与此intefere?这又如何“保留”的关键字获得这样可能会造成冲突的方式来实现?

再次感谢

有帮助吗?

解决方案

form元件有一个方法命名submit,还具有形式为成员的形式的元素。

如果您在命名形式有submit一个按钮,你可以使用document.form1.submit访问它。然而,因为这是相同的名称submit方法,这里就不再访问该方法的任何方式。如果您使用的方法来提交表单,将不再工作。

例如,如果有一个按钮,提交使用Javascript形式,即不工作:

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

当按钮尝试使用submit方法,它将代替(试图调用它,当和一个错误消息,如按键不是函数)得到本身的引用。

其他提示

我促请你所有的JavaScript的DOM的保留字望而却步。使用“我的”中定义的一切,或$,或别的东西,这显然是不打算通过保留字,你可以只是偶然超载而造成的破坏相冲突的前面。

代码隐藏所产生,允许你事件绑定到基于指定的值的命名的对象。

只需如果使用的onsubmit在表单提交问题

<form id="form1" runat="server" onsubmit="this.submit()">
<div>
    <asp:TextBox ID="txtTest" runat="server" />
    <asp:Button ID="Submit" runat="server" Text="Submit" Type="submit"/>
</div>
</form>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top