在Web应用程序中不使用javascript打印文本框值

时间:2016-05-14 10:54:04

标签: javascript html

我创建了单页Web应用程序,我想打印此页面。在这个页面中,我使用JavaScript代码打印页面,它有很多文本框,我用一个按钮打印整个页面,但是,如果我在文本框中输入一些值,然后单击打印按钮,页面打印但文本框值不会显示在打印页面中。如果我使用快捷键来打印像Ctrl + p那么它将显示打印页面中的所有值

 function printDiv(divName)
 {
 printContents = document.getElementById(divName).innerHTML;
 var originalContents = document.body.innerHTML;
 document.body.innerHTML = printContents;
 window.print();
 document.body.innerHTML = originalContents;
 }

2 个答案:

答案 0 :(得分:0)

value

input属性与其实际值不同步。

所以,当你这样做时

document.getElementById(divName).innerHTML

您只能获得HTML中的value属性而不是实际值。

您需要将这些行放在上面提到的行

之前
var divEl = document.getElementById(divName);
var allInputs = divEl.querySelectorAll("input,select,textarea");
for( var counter = 0; counter < allInputs.length; counter++)
{
    var input = allInputs.item(counter);
    input.setAttribute("value", input.value);
}

答案 1 :(得分:0)

gurvinder372的答案是完美的!这就是我用他的答案解决我的问题的方法。

// Stores manually entered deposit dates for proper printing
var calendarDocument = document.getElementById("calendar");
var savedDepositDates = calendarDocument.querySelectorAll("input");

// Replaces all of the <input value=""> attributes with the manually entered deposit dates
for (var i = 0; i < savedDepositDates.length; i++)
{
  var input = savedDepositDates.item(i);
  input.setAttribute("value", input.value);
}

// Grabs the HTML code from inside the element with id="calendar"
var elementToPrint = document.getElementById("calendar").innerHTML;