使用jqprint来打印form表单中的内容时。会出现input、textarea标签里的东西无法打印。
jquery打印原理:jqprint打印方式是把打印区域的html内容处理到新的iframe中,然后打印。
这样的一个机制下,input、textarea当中的内容如果是通过jquery赋值、手动输入,那么在打印的时候是不会有内容的。
解决办法:
在jqprint()之前,执行下面的方法:
1.input属性赋值:使input标签的value属性内有你要打印的内容。
2.textarea: 将标签内的内容,赋给textarea的html。
textarea处理方式如下:
// 打印表单
$('#print').on('click', function () {
var $iframes = $('#form_list_iframes');
var iframeId = $iframes.find('.form-list-iframe.active').attr('id');
var $iframe = learun.iframe(iframeId, frames);
//=============hujie20191231==调整textarea在打印时不显示的问题====开始========
var lstTextarea = $iframe.$('textarea');
if (lstTextarea) {
for (var i = 0; i < lstTextarea.length; i++) {
$(lstTextarea[i]).html(lstTextarea[i].value);
}
}
//=============hujie20191231==调整textarea在打印时不显示的问题====结束========
$iframe.$('.lr-form-wrap:visible').jqprint();
});
