javascript - Imprimir lo que hay en los campos de entrada
Tengo una página simple llena de campos de entrada y necesito que se impriman con el contenido escrito por el usuario.
Hasta ahora puedo imprimir los campos de entrada, pero siempre vacíos por dentro.
class VM{
PrintDiv() {
let self = this;
var printContents = document.getElementById('print').innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
location.reload();
}
}
ko.applyBindings(new VM);<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div id="print">some text<input /></div>
<br />
<button data-bind="click: PrintDiv">Print</button>Respuesta #1
Bueno, quieres obtener el texto del campo de entrada, pero estás obteniendo HTML de todo el div con id print. Aquí hay una solución simple.
class VM {
PrintDiv() {
let input = <HTMLInputElement> document.getElementById('print');
let printContents = input.value;
document.getElementById('content').innerText = printContents;
location.reload();
}
}
ko.applyBindings(new VM);<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div>some text<input id="print" /></div>
<br />
<button data-bind="click: PrintDiv">Print</button>
<div id="content"></div>