如何使用jQuery / javascript打印包含数据的div

时间:2018-08-06 11:11:30

标签: javascript jquery html

我要打印网页的特定div,并且该div包含一些字符串。例如:在包含人名的文本框中。

现在,当我那时在打印预览中打印页面时,它仅显示文本框,而没有任何字符串(数据)。

function showPopup(divName) {
  var divToPrint = document.getElementById(divName);
  var newWin = window.open('', 'Print-Window');
  newWin.document.open();
  newWin.document.write('<html><body onload="window.print()">' + divToPrint.innerHTML + '</body></html>');
  newWin.document.close();
  setTimeout(function() {
    newWin.close();
  }, 10);
}
<div class="container">
  <form id="service-job-form" name="service-job-form">
    <div id="printableArea">
      <label for="CustomerId" class="col-sm-4 col-form-label">Customer Name</label>
      <div class="col-sm-5 input-group">
        <input type="text" autocomplete="off" id="CustomerName" name="CustomerName" required data-provide="typeahead" class="typeahead search-query form-control autocomplete" placeholder="Customer Name" />
      </div>
    </div>
    <div class="form-group row">
      <input type="button" class="btn btn-primary" value="Print" id="bodyWrapper" onclick="showPopup('printableArea');" />
    </div>
  </form>
</div>

2 个答案:

答案 0 :(得分:0)

我希望这会有所帮助:

function showPopup() {
  var name = $('#CustomerName').val();
  var newWin = window.open('', 'Print-Window');
  newWin.document.open();
  newWin.document.write('<html><body onload="window.print()">' + name + '</body></html>');
  newWin.document.close();
  setTimeout(function() {
    newWin.close();
  }, 10);
}

答案 1 :(得分:0)

如果要从输入字段中获取数据,请使用.value而不是.innerHTML。因此您的代码应为:

newWin.document.write('<html><body onload="window.print()">' + divToPrint.value + '</body></html>');