2016-05-14 40 views
0

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

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

'的document.getElementById(divName).innerHTML'不会让该用户已插入的值。 – gurvinder372

+0

请让我知道我应该使用哪个代码来打印文本框的值? –

+0

在下面发表了一个回答,请尝试一下。 – gurvinder372

回答

0

valueinput的属性对于其实际值同步。

所以,当你做

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); 
} 
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;

相关问题