我创建了单页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;
}
答案 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;