如何实现window.print()局部打印,且打印当页修改的input

老板又提出了一个坑爹的需求。
报表打印
而且报表要以input的形式展现,方便操作人员进行修改

之前没写过打印,所以找了好多JS和jquary的插件来做。
但是发现局部打印会导致的一个结果是,input输入修改之后,并不会打印出来。
找了好久才发现这是因为js实现局部打印的时候,是通过innerHtml来保存页面源代码,以此来实现。
但是对于input来说,输入改变的是value值,并不会改变源代码,所以这个方法就失效了。
但是有一种另外的解决途径。
既然不能保存局部的数据,那我把另外一部分隐藏了不就好了?
所以我就通过另一条道路解决了这个问题。

这个是通过保存局部源代码实现
function printdiv(printpage)
{
var headstr = ““;
var footstr = ““;
var newstr = document.all.item(printpage).innerHTML;
var oldstr = document.body.innerHTML;
document.body.innerHTML = headstr+newstr+footstr;
window.print();
document.body.innerHTML = oldstr;
return false;
}

这个是通过隐藏另外一部分不需打印的来实现。
这样就完美解决了打印input修改数据的问题
function showprint(){
(“#m_hiddden”).hide();  
    if (confirm(‘Print This Document?’)) {  
              window.print();  
      }
(“#m_hiddden”).show();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值