2016-05-14 42 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;

相關問題