默認使用Lodop打印頁面上的文本框等,會發現雖然頁面上文本框輸入了值,打印預覽卻是空的,這是由於沒有把最新的值傳入Lodop。
如圖,演示的是Lodop如何輸出文本框內的新值,這里整個頁面只有input type="text",如果有單選等,需要判斷一下是input類型是文本框還是單選框 input type="radio"。如果有其他表單輸出項,也要添加到判斷里,除了input,還可能有select下拉列表。
為了簡略,圖中代碼里只讓innerHTML獲取的內容包含input(整個頁面只有type="text"文本框)的最新值。
同時讓innerHTML獲取的內容包含input和select(option)的最新值,下圖代碼可以從如下官網樣例里拷貝(或下載中心綜合版里自帶的樣例),頁面右鍵-查看源碼,可以查看或拷貝代碼寫好的refreshData()方法。
如果想打印使用頁面的最新值,可在打印前調用一下這個方法。
如下代碼,可用Lodop輸出文本框,單選框,復選框,下拉列表的最新值。
function refreshData(){ //讓innerHTML獲取的內容包含input和select(option)的最新值 var allInputObject=document.body.getElementsByTagName("input"); for (i = 0; i < allInputObject.length; i++) { if(allInputObject[i].type=="checkbox") { if (allInputObject[i].checked ) allInputObject[i].setAttribute("checked","checked"); else allInputObject[i].removeAttribute("checked"); } else if(allInputObject[i].type=="radio") { if (allInputObject[i].checked ) allInputObject[i].setAttribute("checked","checked"); else allInputObject[i].removeAttribute("checked"); }else allInputObject[i].setAttribute("value",allInputObject[i].value); }; for (i = 0; i < document.getElementsByTagName("select").length; i++) { var sl=document.getElementsByTagName("select")[i]; for (j = 0; j < sl.options.length; j++) { if (sl.options[j].selected) sl.options[j].setAttribute("selected","selected"); else sl.options[j]=new Option(sl.options[j].text,sl.options[j].value); }; }; };