Css IE9不会在下拉列表中打印更改的选项

Css IE9不会在下拉列表中打印更改的选项,css,printing,cross-browser,drop-down-menu,internet-explorer-9,Css,Printing,Cross Browser,Drop Down Menu,Internet Explorer 9,在IE9中的一个简单下拉框中,如果用户更改选择,然后尝试打印,打印将呈现原始选项 说吧,我有 <option value="">Select one: </option> <option value="1">Record 1</option> <option value="2">Record 2</option> <option value="3">Record 3</option> 选择一个: 记

在IE9中的一个简单下拉框中,如果用户更改选择,然后尝试打印,打印将呈现原始选项

说吧,我有

<option value="">Select one: </option>
<option value="1">Record 1</option>
<option value="2">Record 2</option>
<option value="3">Record 3</option>
选择一个:
记录1
记录2
记录3
默认情况下,加载页面时,此下拉框中将显示“Select one:”。如果我选择“记录2”,然后打印页面,“选择1:”将在框内打印,而不是我选择的“记录2”

Firefox可以正确打印。其他版本的IE也可以完成这项工作。但我们不希望使用兼容性视图:

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

因为在这种情况下,虽然选定的值正确地显示在下拉框中,但我们的许多css样式都丢失了。(如边界半径)


有人有好的解决办法吗?谢谢。

这里有一个粗略的函数,它似乎可以做到这一点,它需要在您的环境中进行彻底测试,但目前似乎还可以:

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);
                });
            }
if($.browser.msie&&parseInt($.browser.version,10)==9){
$(“选择”).change(函数(){
var selectedOpt=$(this).find(“选项:selected”);
var originalDefaultOption=$(this).find(“选项[selected]”);
var text=originalDefaultOption.html();
var val=originalDefaultOption.val();
originalDefaultOption.after(“+text+”);
originalDefaultOption.remove();
selectedOpt.attr(“selected”,true);
});
}

基本上,IE不允许您从选项中删除'selected=selected'属性,即使使用JavaScript也是如此。因此,我只是将原始默认选项复制到一个新的选项标记中,没有复制“selected”属性,而是将“selected”属性放在新单击的选项上。在FF和IE9&8中工作。

我完全被这个错误弄糊涂了。在“兼容性”模式下运行页面也解决了这个问题(但是你现在回到了CSS的IE8设置,等等)。谢谢。我真的很感激,没问题。这是一个可笑的错误,一个真正的头部办公桌爆炸。