如何使用jquery / javascript从打印预览中获取输入值

时间:2016-11-16 09:22:54

标签: javascript jquery html

我有这个带有字段的示例html内容 我需要打印所有内容,包括输入值,并在样本预览中显示。 我试过这个脚本来触发打印:

样本打印工作正常,但输入值未显示。我怎样才能做到这一点?我应该使用除html()函数以外的替代方法吗?

function PrintPreview() {
  printWindow = window.open("", "", "location=1,status=1,scrollbars=1,width=650,height=600");
  printWindow.document.write($('#mainbody').html());
  printWindow.document.close();
  printWindow.focus();
}
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

<div id="mainbody">
  Last Name
  <input type="text" id="lname" name="lname">First Name
  <input type="text" id="fname" name="fname">Middle Name
  <input type="text" id="mname" name="mname">
</div>
<input type="button" onclick="PrintPreview();" value="Print Preview" />

3 个答案:

答案 0 :(得分:2)

这对我有用 - 将值复制到value属性并克隆div

function PrintPreview() {
  $("#mainbody > input").each(function() { 
    $(this).attr("value",$(this).val()); 
  });

  var printWindow = window.open("", "_blank", "location,status,scrollbars,width=650,height=600");
  if (printWindow) {
    printWindow.document.write($('#mainbody').clone(true)[0].innerHTML);
    printWindow.document.close();
    printWindow.focus();
  }
  else alert("Please allow popups");
}

可选地

How to print only one div content from html page using print button

答案 1 :(得分:0)

您可以在PrintPreview功能之前输入以下代码:

$('input').each(function(){
    $(this).keyup(function(){
        $(this).attr('value',$(this).val());
    });
});

这样就可以在keyup上更改value属性,预览工作正常。

答案 2 :(得分:-1)

这一次尝试。

<div id="mainbody">
  Last Name <input type="text" id="lname" name="lname">
  First Name<input type="text" id="fname"  name="fname">
  Middle Name<input type="text"  id="mname" name="mname">
</div>
<input type="button" onclick="PrintPreview();" value="Print Preview" />
 <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
  <script>
      function PrintPreview() {
     window.print();
  }
 </script>