2011-12-19 3 views
1

私は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でこの誤解を回避するにはどうすればよいですか?

+0

おそらく試したIEのバージョン/モードを追加しますか? (もし重要だとはっきりしない) – Jeroen

+0

どのバージョンのIE?また、を試してみてください。 –

+0

常に、タイプボタンをボタン、リセット、またはサブミットするように設定してください。すべてのブラウザが異なる処理を行う可能性があります...レンダリング時にデフォルトを設定します。 また、 "button"ではなくtype = "button"の入力を使用することをお勧めします。これは、その動作がフォーム内で予測可能であるためです。 – Alfabravo

答えて

5

秒1で、試してみてください。<button type="button">

+2

IEはそれを間違ってサブミットとして読まず、サブミットはデフォルトです。 – albert

+1

明らかに、 "submit"はIEのデフォルトタイプです。 –

0

試してみてください。

<input type='button' /> 

これは、ほとんどの場合、IEで動作します。

関連する問題