Internet explorer 打印页面在带有DocType的IE中显示未更改的复选框

Internet explorer 打印页面在带有DocType的IE中显示未更改的复选框,internet-explorer,checkbox,printing,Internet Explorer,Checkbox,Printing,奇怪的问题。我有一个简单的Web表单,用户可以在其中填写文本并选中/取消选中一些复选框。当在IE(7或8)中将其打印为pdf或纸张(或打印预览)时,复选框打印不变。例如,用户设置了一个复选框,该复选框未选中打印。。。或者在用户未选中的情况下使用预选中框,则打印为选中状态 收音机也是如此 只有当我完全删除DocType时(正确打印)。但我需要严格使用XHTML 这是一个在IE中失败的简单示例: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stri

奇怪的问题。我有一个简单的Web表单,用户可以在其中填写文本并选中/取消选中一些复选框。当在IE(7或8)中将其打印为pdf或纸张(或打印预览)时,复选框打印不变。例如,用户设置了一个复选框,该复选框未选中打印。。。或者在用户未选中的情况下使用预选中框,则打印为选中状态

收音机也是如此

只有当我完全删除DocType时(正确打印)。但我需要严格使用XHTML

这是一个在IE中失败的简单示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="nl" xml:lang="nl-NL"> 
<body>
<input type='checkbox' name='y'/><br/>
<input type='radio' name='x'/><br/>
</body>
</html>



不适用于我测试的任何doctype(loose或html4)

有人知道如何解决这个问题吗

非常感谢,, Michael原来是一个IE8 bug:

打开“兼容性视图”时没有此问题

解决方案是在标题中添加以下内容:

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

当IE9出现时,会破坏验证并产生问题

使用JavaScript的其他“好”解决方案也适用:

<input type='checkbox' name='y' onclick='SetCheck(this)'/>
.....

function SetCheck(el)
{
  if(el)
  {
    if(el.checked)  el.setAttribute('checked','checked');
    else            el.removeAttribute("checked");
  }
}

.....
功能设置检查(el)
{
如果(el)
{
如果(el.checked)el.setAttribute('checked','checked');
else el.removeAttribute(“选中”);
}
}

但是当你不能依赖javascript的开启时,你就被微软搞砸了。

删除DOCTYPE只会让浏览器进入怪癖模式。我很怀疑你能否控制浏览器如何呈现表单字段进行打印,但也许有人知道一个窍门。是的,我知道。但我想应该有很多IE用户希望他们的复选框打印正确。没有一天我们不被微软搞砸。