簡體   English   中英

IE9(兼容模式)不提交表單

[英]IE9 (compatibility mode) not submitting a form

我在一個 html 頁面上有一堆<a> ,每個都與一個form相關聯,並且想要在表單本身 sumbits 時顯示一個“加載”圖像(這似乎需要很長時間,但也許這是另一回事)。

所以我在那些a s 的 onclick 事件中做了一些有點駭人聽聞的事情

frmContent = $ ( this ).nextAll ( "form" ).clone ();
$ ( "body" ).html ( "<div class='preload'><img src='./img/loading.gif' /><br/>Caricamento in corso<\/div>" );
$ ( "body" ).append(frmContent);
frmContent.submit ();

這似乎適用於 Firefox 和 IE9。 問題是當啟用兼容模式時,這不起作用。

當瀏覽器被識別為 IE7 時,我也想過使用不同的東西,像這樣:

if ( $.browser.version != "7.0" ) {
    frmContent = $ ( this ).nextAll ( "form" ).clone ();
    $ ( "body" ).html ( "<div class='preload'><img src='./img/loading.gif' /><br/>Caricamento in corso<\/div>" );
    $ ( "body" ).append(frmContent);
    frmContent.submit ();
} else {
    $ ( this ).nextAll ( "form" ).submit ();
}

所以沒有顯示預加載動畫,但這違背了目的。

由於我無法強制我的用戶關閉兼容模式,並且由於此頁面也必須在 IE7 中工作,因此該代碼段有什么問題? 有沒有更好的方法來做到這一點。

在提交之前將表單附加到正文。

frmContent = $ ( this ).nextAll ( "form" ).clone ();
    $ ( "body" ).html ( "<div class='preload'><img src='./img/loading.gif' /><br/>Caricamento in corso<\/div>" );
    frmContent.hide();
    $ ( "body" ).append(frmContent);
    frmContent.submit ();

就像一種解決方法。 我認為沒有理由用預加載 div 替換所有正文 HTML 並克隆一個表單。 您可以在提交和附加預加載 div 之前簡單地隱藏所有內容:

    $ ( "body" ).children().hide();
    $ ( "body" ).append( $("<div class='preload'><img src='./img/loading.gif' /><br/>Caricamento in corso<\/div>") );
    $ ( this ).nextAll ("form").submit();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM