<body><!--startprint-->
<table>
<tr>
<td>名字:</td><td><input id="name" type="text" /></td>
</tr>
</table>
<!--endprint-->
<input type="button" id="DBprint" onclick="preview();" value="打印" /></body>下面是js打印代码:
//打印功能(无参数)
function preview() {
    bdhtml = window.document.body.innerHTML;
    sprnstr = "<!--startprint-->";
    eprnstr = "<!--endprint-->";
    //debugger;
    prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr) + 17);
    prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
    window.document.body.innerHTML = prnhtml;
    window.print();
}
我的问题是:我现在能打印,但是打印内容只是表格。
我在id="name"中的数据打印不出来。数据是我从数据库读出来的。
情况是,我从数据库中读出数据放在text中,当我点指印按钮时,页面的数据就消失了。最后打印出来的就是一个不带数据的表格页面了!!
请问怎么回事?

解决方案 »

  1.   

    一般的做法用一个隐藏div,把要打印的数据用表格做好放在隐藏div中,不要有input相关的控件,打印那个隐藏div即可。时间很久没用了,依稀记得是这样实现的。
      

  2.   

    也就是说,我要做两个用来存放数据的div?这样不好吧……
      

  3.   

    有没有更好的办法啊!!因为我要打印的html页面很多,难道我要每个都设置一个隐藏的吗?
      

  4.   

    <a href="javascript:window.print();">打印</a>
      

  5.   

    在打印前,用JS将所有显示有数据的表单元素,用“<span>数据</span>”替换掉。
      

  6.   


    这个,有没有具体的实例啊!!我的表单元素可不只<input type="text"> 一种,还有<textarea>这一种。
    帮帮忙!!
      

  7.   

    可以参考一下我这篇http://www.cnblogs.com/sky000/archive/2010/10/14/1851268.html