这是我打印的div。
<div id="leftdes">In order to purchase and obtain a copy of your certified IRS Transcript for the year </strong>
<div>
AUTHORIZED SIGNATURE ________________________________
<input title="Enter Date" name="aut_date" id="aut_date" type="text" value="" onClick="rem_valid(this.id);"/>
</div>
<div class="search-raw" style="width:98%;">
<select title="Select Suffix" name="a_suff" id="a_suff" class="input-4" style="padding:5px;" onClick="rem_valid(this.id);">
<option value="" selected="selected">SUFFIX</option>
<option value="Jr">Jr</option>
<option value="Sr">Sr</option>
<option value="I">I</option>
<option value="II">II</option>
<option value="III">III</option>
</select>
</div>
<input title="Enter Company Name" name="a_cname" id="a_cname" type="text" value="" onClick="rem_valid(this.id);"/></br></br>
</div>
我正在尝试使用下面的javascript代码打印上面的 div 。但我没有得到输入字段的值。帮我解决这个问题。
function printdiv(divid)
{
var divElements = document.getElementById(divid).innerHTML;
//var name="US Background Check";
var oldPage = document.body.innerHTML;
var current=document.body.innerHTML = "<html><head><title></title></head><body><img src='images/logo.png'/></br>"+divElements+"</body>";
window.print();
document.body.innerHTML=oldPage;
}
单击下面的按钮时调用打印功能“printdiv”。
<input name="but" id="but1" type="button" value="PRINT" onClick="printdiv('leftdes');"/>
答案 0 :(得分:0)
实际上,您无法通过这种方式获取字段的值。但是,您获得的是默认值,而不是用户输入的值。
如下所示:当页面加载时,字段将填充其默认值(&#34;&#34;用于文本字段,以及下拉菜单的第一个选项)。然后,当用户更改这些字段时, HTML标记的属性永远不会更改,它们会保留默认值。
换句话说,当您调用document.getElementById(divid)
时,它会返回最初加载的HTML代码。如果您通过键入手动更改值,则无法看到这些更改。
最简单的解决方案之一是访问这些值,并且在您的函数内部,当您更改body
的内容时,只需放置这些值而不是从document.getElementById(divid)
获取的HTML
var aut_date = document.getElementById("aut_date").value;
var a_suff = document.getElementById("a_suff").value;
var a_cname = document.getElementById("a_cname").value;
document.body.innerHTML = "... <input ... value='"+ aut_date +"' ...> etc.";
顺便说一句,当你执行<html><head><title></title></head><body>
时,你不需要添加var current=document.body.innerHTML =
,因为你已经在 {{1}元素。现在,您将HTML文档,标题和页面标题放在正文中......出于同样的原因,您也不应该使用body
结束字符串。
答案 1 :(得分:0)
尝试这个
function printDiv(divName) {
var inpText = document.getElementsByTagName("input")[0].value;
var printContents = document.getElementById(divName).innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
document.getElementsByTagName("input")[0].value = inpText;
window.print();
document.body.innerHTML = originalContents;
document.getElementsByTagName("input")[0].value = inpText;
}