使用下面的代码,我可以打印表格,但我无法打印输入的 值。任何人都可以帮助.....
这是代码.....
<!doctype html>
<html>
<head>
<script>
function printDiv()
{
var divToPrint=document.getElementById('demo');
newWin= window.open("");
newWin.document.write(divToPrint.outerHTML);
newWin.print();
newWin.close();
}
</script>
</head>
<body class="tundra">
<div>
<table id="demo" >
<tr>
<td><input type="text" ></td>
<td> cell 11 </td>
</tr>
<tr>
<td><input type="text" ></td>
<td> cell 12</td>
</tr>
</table>
</div>
<input type="button" value="Print" onclick="printDiv()" />
</body>
</html>
答案 0 :(得分:1)
<强> Demo Fiddle 强>
您可以使用该值替换所有输入,然后可以打印表格...使用javascript完全执行它非常困难但不是不可能。
jQuery
function printDiv() {
$('input[type=text]').each(function () {
var cell = $(this);
cell.replaceWith('<span>' + cell.val() + '</span>');
});
var divToPrint = document.getElementById('demo');
newWin = window.open("");
newWin.document.write(divToPrint.outerHTML);
newWin.print();
newWin.close();
}
答案 1 :(得分:0)
divToPrint=document.getElementById('demo');
将DOM输入元素与第一次加载的方式相同。 例如,如果您的输入有
value="test"
在您的html代码中,它将在打印中显示。
答案 2 :(得分:0)
这里的问题不是表格,而是input
元素。当用户输入数据时,它将存储在文档对象模型中value
个元素节点的input
属性中。但是当你在另一个文档中编写封闭的div
元素时,只会写入元素及其HTML属性 - 这些值将被丢弃。
解决方案是通过根据value
属性设置value
属性,使数据成为标记的一部分。为此,您可以先使用cloneNode
方法克隆div
元素,然后使用getElementsByTagName
方法获取其中的所有input
元素。这意味着您将通过以下内容替换printDiv
函数中的第一个语句:
var divToPrint=document.getElementById('demo').cloneNode(true);
var inputs = divToPrint.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++)
inputs[i].setAttribute('value', inputs[i].value);