文本框不是从Javascript/Asp.net中的对话框中打印出来的

Textbox is not getting printed from a Dialog box in Javascript/Asp.net

本文关键字:对话框 打印 net Asp Javascript 文本      更新时间:2023-09-26

我正在尝试打印一个对话框。我可以从对话框中打印除Textbox值之外的所有内容。

HTML

<div class="calculator">
 <a href="#" onclick="printElement('.calculator')">
   <img src="images/icon_print.png" /> Print
 </a>
</div>

JS

function printElement(element) {
    var text = document.getElementById("age_input").value;
    alert(text);
    w = window.open();
    w.document.write($(element).html());
    w.document.close();
    document.getElementById("age_input").value = text;
    w.print();
    w.close();
}

如何打印包含Textbox元素中的值的对话框?

好问题。我花了一段时间才弄明白。问题是,当您使用$(element).html() 时,文本框的内容不是HTML的一部分

您可以通过任何浏览器开发工具(F12)检查元素来看到这一点。因此,您必须使您的内容成为HTML的一部分,以便在打印过程中可用。一个快速的解决方法是使用输入框的placeholder属性。这是您代码的更新版本。

<script type="text/javascript">
     function printElement(element) {
         var text = document.getElementById("age_input").value;
         document.getElementById("age_input").placeholder = text;
         w = window.open();
         w.document.write('<html><head><title>DIV Contents</title>');
         w.document.write('</head><body >');
         w.document.write($(element).html());
         w.document.write('</body></html>');
         w.document.close();
         document.getElementById("age_input").value = text;
         w.print();
         w.close();
     } 
 </script>

我假设age_input是你的输入框,它在Div元素中

<div class="calculator">
        <input id="age_input" type="text" />
 <a href="#" onclick="printElement('.calculator')"> <img src="images/icon_print.png" />Print</a>
 </div>