In ASP.NET-Webforms und ASP 3 (Classic ASP) stieß ich auf ein Problem, bei dem die Benennung des Formular-Senden-Buttons "submit" "Dinge kaputtmachen" würde. Unten ist das gerenderte HTML:Warum benennt das Benennen Ihres HTML-Formulars die Schaltfläche "Senden" um Dinge zu ändern?
Ich sage "Dinge zu brechen", weil ich nicht sicher bin, genau, warum oder was passiert ist. Aber die Symptome waren normalerweise, dass das Drücken der Submit-Taste manchmal nichts tat, d. H. Es funktionierte einfach nicht. Aber manchmal hat es funktioniert.
In der Tat, ich baute nur einen schnellen eine Seite Test mit dem folgenden Code, und einreichenden hat gut funktioniert:
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtTest" runat="server" />
<asp:Button ID="Submit" runat="server" Text="Submit" />
</div>
</form>
Aber, in der Vergangenheit, dieses Problem aufgetreten ist, und die Umbenennung auf die Schaltfläche immer ließ das Symptom weggehen.
Also weiß jeder HTML/HTTP/Browser-Experte aus irgendeinem Grund, warum die Einstellung id = "submit" auf einer Submit-Schaltfläche Probleme verursachen würde?
EDIT
diese SO comment "Eintragen" ist ein reserviertes Schlüsselwort scheint darauf hinzudeuten. Aber warum interferieren die Attribute "id" oder "name"? Und wie wird dieses "reservierte" Keyword so umgesetzt, dass es zu Konflikten kommt?
Dank wieder
hmm ... interessant. Prost! – andy
Wow! Es scheint, als gäbe es alle Arten von Namens-Raum-Kollisionen zwischen dem DOM und Namen, die dann für Formularsteuerelemente deklariert werden. –
Namensraum Kollision ist die eine Sache, für die Javascript am häufigsten kritisiert wird.Es gibt praktisch nichts, was vor versehentlicher (oder vorsätzlicher) Überlastung geschützt ist. Aus diesem Grund empfiehlt es sich, verschiedene Schemata zum Schutz vor Kollisionen zu verwenden, z. B. das Umhüllen aller Objekte in der eigenen Sperrschicht oder das Aufrufen aller Top-Level-Objekte als etwas Originellem. –