私は2つのHTMLボタンを持っています。 1つはフォームを送信し、もう1つはコンテナダイアログを閉じます。それはtype
属性がない閉じるボタン:次のようにIEはサブミットボタンとしてHTML <button>を間違って扱います
<button type="submit">Submit</button>
<button class="closeDialog">Close</button>
JavaScriptは次のとおりです。
$(".closeDialog").live("click", function(event) {
event.preventDefault();
$(this).parents(".dialog").dialog("close");
});
$("form.myClass").live("submit", function(event) {
event.preventDefault();
// submits the form here . . .
});
このすべては、すべてのブラウザで正常に機能しますが、IE。 IEでは、「閉じる」ボタンをクリックすると、上記の両方のJavaScriptイベントが実行されますが、.closeDialog
イベントハンドラのみが実行されます。
IEは、type
属性に関係なく、送信ボタンとして要素を扱っているようです。
IEでこの誤解を回避するにはどうすればよいですか?
おそらく試したIEのバージョン/モードを追加しますか? (もし重要だとはっきりしない) – Jeroen
どのバージョンのIE?また、を試してみてください。 –
常に、タイプボタンをボタン、リセット、またはサブミットするように設定してください。すべてのブラウザが異なる処理を行う可能性があります...レンダリング時にデフォルトを設定します。 また、 "button"ではなくtype = "button"の入力を使用することをお勧めします。これは、その動作がフォーム内で予測可能であるためです。 – Alfabravo