ASP.NET WebフォームとASP 3(従来のASP)では、フォーム提出ボタンの名前を「submit」と命名すると「ものが壊れる」という問題が発生しました。以下はレンダリングされたHTMLです。HTMLフォームの送信ボタンの名前を付けて「送信」すると、何かが中断するのはなぜですか?
私は、なぜ、何が起こったのか正確にはわからないので、「ブレーク」と言います。しかし、通常、サブミットボタンを押しても何もしなかったという症状が現れました。しかし時にはうまくいった。
は実際に、私はちょうど下記のコードで迅速な1ページのテストを構築し、提出がうまく働いた:
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtTest" runat="server" />
<asp:Button ID="Submit" runat="server" Text="Submit" />
</div>
</form>
しかしを、過去に、この問題が発生して、ボタンの名前を変更しました常に症状を消してしまった。
HTML/HTTP/Browserのエキスパートが、送信ボタンでid = "submit"を設定すると問題が発生する理由を知っていますか?このSO commentは "提出" を提案しているようだ
EDIT
は予約キーワードです。しかし、なぜ "id"または "name"属性にはこれには何の意味がありますか?そして、この "予約された"キーワードは、競合の原因となるような方法でどのように実装されますか?
おかげで再び
うーん...興味深いです。乾杯! – andy
うわー! DOMとフォームコントロールのために宣言された名前との間には、あらゆる形の名前空間の衝突が存在するようです。 –
名前空間の衝突は、JavaScriptが最も頻繁に批判されている1つのことです。偶発的(または意図的)なオーバーロードから保護されるものは事実上ありません。その理由は、あなた自身のクロージャーですべてをラップするか、またはあなたのトップレベルのすべてのオブジェクトを斬新なものと呼ぶなど、さまざまなスキームを使用して衝突から保護することです。 –