2

在IE9中的簡單下拉框中,如果用戶更改了所選內容然後嘗試打印,則打印將呈現原始選項。IE9不會在下拉列表中打印已更改的選項

說,我

<option value="">Select one: </option> 
<option value="1">Record 1</option> 
<option value="2">Record 2</option> 
<option value="3">Record 3</option> 

默認情況下,當加載頁面時,「選擇一個:」顯示在此下拉框。如果我選擇「記錄2」,然後打印頁面,「選擇一個:」會打印出來,而不是我選擇的「記錄2」。

Firefox可以正確打印。其他版本的IE也可以完成這項工作。但是,我們寧可不使用兼容性視圖:因爲在這種情況下

<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

,雖然選擇的值下拉框裏面正確顯示,我們的許多CSS樣式都將丟失。 (如邊界半徑)

有沒有人有很好的解決方案?謝謝。

+0

我對此錯誤感到絕對困惑。在「兼容性」模式下運行頁面也解決了這個問題(但是你回到了IE8的CSS設置等等)。 – Graham 2012-04-04 14:28:28

回答

1

這裏,似乎這樣的伎倆一個粗略的功能,它需要在您的環境中徹底測試,但似乎是OK的時刻:

if ($.browser.msie && parseInt($.browser.version, 10) === 9) { 
       $("select").change(function() { 
        var selectedOpt = $(this).find("option:selected"); 
        var originalDefaultOption = $(this).find("option[selected]"); 
        var text = originalDefaultOption.html(); 
        var val = originalDefaultOption.val(); 

        originalDefaultOption.after("<option value='" + val + "'>" + text + "</option>"); 
        originalDefaultOption.remove(); 
        selectedOpt.attr("selected", true); 
       }); 
      } 

基本上,IE不會讓你刪除即使使用JavaScript,也可以從選項中選擇「selected = selected」屬性。因此,我只是將原始默認選項複製到新的選項標記中,而不復制'selected'屬性,並將「selected」屬性放在新單擊的選項上。在FF和IE9中工作& 8.

+0

謝謝。我真的很感激。 – Blaise 2012-04-12 14:43:44

+0

沒問題。它是一個荒謬的錯誤,是一個真正的頭桌式布朗。 – Graham 2012-04-12 15:47:10

相關問題