internet-explorer - 使用 DocType 打印页面在 IE 中显示未更改的复选框

标签 internet-explorer checkbox printing

奇怪的问题。我有一个简单的网络表单,用户可以在其中填写文本并选中/取消选中某些复选框。当在 IE(7 或 8)中将其打印为 pdf 或纸张(或打印预览)时,复选框将保持不变。例如。用户设置了一个检查,这被打印为未选中......或者带有一个预先选中的框,用户未选中,被打印为选中。

radio 也是一样。

只有当我完全删除 DocType 时,IE 才能正确打印它。但我需要使用 XHTML-strict。

这是一个在 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>

不适用于我测试的任何文档类型(松散或 html4)。

任何人都知道如何解决这个问题?

非常感谢,
迈克尔

最佳答案

原来是IE8的一个bug:
http://webbugtrack.blogspot.com/2009/04/bug-444-ie8-printing-issues-in.html

打开“兼容性 View ”没有这个问题。

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

<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");
  }
}

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

关于internet-explorer - 使用 DocType 打印页面在 IE 中显示未更改的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3591464/

相关文章:

html - 动态垂直多列列表在 IE 中不起作用

android - 如何将列表中的所有复选框 'check' 改为 'check' 单个复选框?

c# - ASP.Net 打印机友好代码

Javafx 未检测到可用打印机的更改

javascript - jQuery 在 IE7 中不生成 DIV

javascript - IE 显示 "decimal"而不是 "comma"

internet-explorer - Internet Explorer 平滑滚动检测

css - Firefox 复选框 :checked background

php - 如何在 MySql 中添加 Varchar 复选框值?

javascript - Google Chrome 未在 "Print"对话框中显示所有纸张尺寸