js解决打印表单时获取不到填写的数据问题

程序自动化填写网页表单数据 如何让程序自动化填写网页表单数据,特别是涉及到批量数据情况时,可以减少人力。下面是涉及到的一些场景,都可以通过相关自动化程序实现。 阅读详情

        项目中有个打印功能,要求用户填写数据后,点击打印,则把表单的内容打印出来,发现调用window.print()进行打印时,填写的数据没有获取到,原因就是$("#form").html()时,没包含有填写的数据,为了解决这问题,应该html()之前,把所有填写的数据都val('XX')先。在这记录下。

比如例子刚开始如下

<html>
<head>
<script src="jquery-1.8.3.min.js"></script>
<title>XXXXXX</title>	

</head>

<body>
<center>
不用打印:aaaaaaaaaaaaa<br/><br/>
<form id="form">
   XXXXXX资料<br/><br/>
用户名:<input type="text" /><br/>
性别:<input type="radio"  name="sex" value='1' checked />男<input type="radio"  name="sex" value='1'  />女

</form>
<br/><br/>
按钮不打印<br/><br/>
<input type="button" onclick="doPrint()" value="打印" />
</center>
<br/>
</body>
<script type="text/javascript">
function doPrint(){
   //备份body
   var body = window.document.body.innerHTML;
   //备份title
   var title = document.getElementsByTagName('title')[0].innerHTML;
   //获取要打印的内容
   var form = $("#form").html();
   
   window.document.body.innerHTML = form;
   document.getElementsByTagName('title')[0].innerHTML = '';
	
   //调用window的打印功能
   window.print();
   
   //恢复原内容
   window.document.body.innerHTML = body;
   document.getElementsByTagName('title')[0].innerHTML = title;
}
</script>
</html>


填写数据


打印


数据没了,打印后或取消打印,回到原页面,数据也是没了。为了解决这问题,要绑定数据。

<html>
<head>
<script src="jquery-1.8.3.min.js"></script>
<title>XXXXXX</title>	

</head>

<body>
<center>
不用打印:aaaaaaaaaaaaa<br/><br/>
<form id="form">
   XXXXXX资料<br/><br/>
用户名:<input type="text" /><br/>
性别:<input type="radio"  name="sex" value='1' checked />男<input type="radio"  name="sex" value='1'  />女

</form>
<br/><br/>
按钮不打印<br/><br/>
<input type="button" onclick="doPrint()" value="打印" />
</center>
<br/>
</body>
<script type="text/javascript">
function doPrint(){
    //绑定数据
	bindData()

   //备份body
   var body = window.document.body.innerHTML;
   //备份title
   var title = document.getElementsByTagName('title')[0].innerHTML;
   //获取要打印的内容
   var form = $("#form").html();
   
   window.document.body.innerHTML = form;
   document.getElementsByTagName('title')[0].innerHTML = '';
	
   //调用window的打印功能
   window.print();
   
   //恢复原内容
   window.document.body.innerHTML = body;
   document.getElementsByTagName('title')[0].innerHTML = title;
}
//将表单中手动填写的数据进行绑定,便于html()的时候获取到
function bindData(){
	//搞定 type=text, 同时如果checkbox,radio,select>option的值有变化, 也绑定一下, 这里忽略button
	$("input,select option").each(function(){
		$(this).attr('value',$(this).val());
	});
	
	//搞定 type=checkbox,type=radio 选中状态
	$("input[type='checkbox'],input[type='radio']").each(function(){
		if($(this).attr('checked'))
			$(this).attr('checked',true);
		else
			$(this).removeAttr('checked');
	});
	
	//搞定select选中状态
	$("select option").each(function(){
		if($(this).attr('selected'))
			$(this).attr('selected',true);
		else
			$(this).removeAttr('selected');
	});
	
	//搞定 textarea
	$("textarea").each(function(){
		$(this).html($(this).val());
	});
	
}
</script>
</html>





js前端获取扫码枪扫描的数据,打印条形码,批量打印 js前端获取扫码枪扫描的数据,打印条形码,批量打印。实现扫码溯源的功能 阅读详情

相关推荐

基于N32G003的PMBus从机协议栈设计与STM32F103模拟I2C主机通信实战

本文详细介绍了基于N32G003微控制器设计PMBus从机协议栈,并与STM32F103模拟I2C主机进行通信的实战方案。重点阐述了中断驱动架构、命令解析、CRC8优化及超时恢复机制,实现了在70kHz速率下稳定可靠的工业电源管理通信,适用于服务器电源、通信基站等成本敏感应用场景。

numpy6sculptor的博客 919

js读取excel表中的数据

var persons=new Array(); $("#excel-file").change(function(e) { var files = e.target.files; var fileReader = new FileReader(); fileReader.onload = fun

秋风伴落叶 1万+

stm32h743 FM25CL64铁电存储器踩坑记录

调试FRAM经验总结: 1、跑完FRAM读写代码之后,逻分仪发现总线上只有简单、短暂的电平变化,明显不是SPI的通信数据。 (经提醒发现连片选拉高拉低都没有执行到位) 后来发现是因为片选引脚没有初始化,所以直接拉高拉低是无效的。 2、引脚成功初始化后发现CLK、MISO、MOSI数据仍不正常。通过加打印的方式发现跑到HAL_SPI_Transmit中之后还没有执行到写SPI数据寄存器的那一步就return了。 后来经提醒发现: 上图中的指针使用方式错误 后来又发现: 打印出来发现

kuniqiw的博客 3844

最近整理了个js,解决了excel导入读取数据遇到的种种问题

做项目需要导入excel文件,导入的时候总会用到公式,宏等导致的导入数据失败 所以就想,能不能让用户把excel文档中的内容全选,然后粘贴到网页上用form提交,所以写了如下js 对第一个input单元格,获得焦点后点击ctrl+V,就会将excel文档复制到网页上 &lt;html&gt; &lt;head&gt; &lt;script type="text/javascript...

iteye_15777的博客 997

AI大模型开发——transformer模型超全完整版(0基础可懂)

为了更深入的了解transformer模型,我们首先从transformer的诞生聊起吧。transformer在2017年由Vaswani等人首次提出,它摒弃了之前流行的循环神经网络和卷积神经网络的架构,引入了自注意力机制( Self-Attention),显著提高了处理序列数据的能力和效率。transformer模型的这种设计使其在处理长距离依赖问题时, 相比于传统的循环神经网络和长短期记忆网络(LSTM)表现得更加出色,至此, 开启了NLP技术的新篇章。

m0_74922316的博客 2120

AMCL代码详解(六)amcl中的重采样

每次都从w1左边的竖线开始转,显而易见,转到w1的概率为0-w1之间的随机数,转到w2的概率为w1到w1+w2之间的随机数,转到w3的概率为w1+w2到w1+w2+w3之间的随机数,后面的依次类推。当某个粒子的权值较大的时候,产生的随机数落在相应区间的概率就会增大,从而实现了对权值大粒子的多次复制,权值小的粒子的剔除。可以看出,在整个重采样的过程中,粒子进行了两次种情况的刷新,一种是随机生成的新的粒子,一种是对原来的粒子的复制。得到的值越大,说明粒子的权重越小,当前粒子的可信度比较小,需要重采样粒子。

YiYeZhiNian的博客 1580

js 打印form表单填写的数据

项目中有个打印功能,要求用户填写数据后,点击打印,则把表单的内容打印出来,发现调用window.print()进行打印时,填写的数据没有获取到,原因就是$("#form").html()时,没包含有填写的数据,为了解决这问题,应该html()之前,把所有填写的数据都val('XX')先。在这记录下。 比如例子刚开始如下 <html> <head> <script...

binghuozhi的博客 5210

Python通用编程规范-09 安全编程规范

1.9 安全编程规范 1.9.1 异常行为 1.9.1.1 禁止抑制或者忽略已检查异常 【说明】: 编码人员常常会通过一个空的或者无意义的catch块来抑制捕获的已检查异常。每一个catch块都应该确保程序只会在继续有效的情况下才会继续运行下去。因此,catch块必须要么从异常情况中恢复,要么重新抛出适合当前catch块上下文的另一个异常以允许最邻近的外层try-catch语句块来进行恢复工作。异常会打断应用原本预期的控制流程。例如,try块中位于异常发生点之后的任何表达式和语句都不会被执行。因此,异常必须

zhao12501的博客 2871

Vue|获取表单数据

表单用于搜集不同类型的用户输入,Vue针对不同的表单输入类型,也提供了不同的的输入控制及验证。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 5543

使用CNN/ResNet实现自动调制识别(RML2018.01a)

本文基于RML2018.01a大型数据集,给出CNN及其变体ResNet的信号识别的实现方式(附代码) 目录一、CNN的代码实现1.1 导入包1.2 数据读取及数据集划分1.3 构建CNN模型1.4 模型训练1.5 测试及模型可视化二、ResNet的代码实现 RML2018.01a数据集信息如下: 数据集来源 Over-the-Air Deep Learning Based Radio Signal Classification 调制类型 19种数字调制方式: 32PSK, 16APSK,

QAQIknow的博客 1万+

Allegro 中复制一部分PCB到另一个PCB中去

引言:自从学了allegro后,我每天快乐地再拉线,一开心肯定出事情。不料今天一高兴,把本来在5层的铜皮直接在4层画起来了。不过,幸好我知道换层,才省了又要画铜皮的时间。好了,开干,如果要将其他层的铜皮换到想要换到的层上,就需要这个命令。

tianpu2320959696的博客 970

解决 Vue 中 `v-model` 获取不到值的问题:一步步排查与解决方案

通过以上步骤,我们可以有效地排查并解决 v-model 无法获取到值的问题。关键点在于: 确保 configForm 在 data 中正确初始化。 确保组件和数据已正确加载。 确保表单验证规则的 prop 属性与字段名称一致。 检查 v-model 的绑定是否生效。 检查表单重置逻辑是否影响了数据。 排查是否有其他代码干扰 configForm 的值。

程序猿熊躍暉的专栏 1638

实战 | OpenCV实现扫描文本矫正应用与实现详解(附源码)

导读 本文主要介绍使用OpenCV对扫描文本矫正的应用实例及详细实现步骤。 背景介绍 在使用打印机或扫描仪扫描文档时,由于摆放位置差异难免造成扫描文档的倾斜。本文将使用OpenCV将倾斜的文档矫正水平并去除黑边。 实现步骤 本文只针对包含大部分文字的文档做倾斜矫正,思路来源是大部分文字倾斜后同一行的也在同一条直线,通过拟合直线计算文本倾斜角度,然后旋转来实现文本倾斜矫正。 详细步骤: ①加载倾斜图像 ②灰度转换+腐蚀+膨胀 ③Canny边缘检测 + 霍夫线变换检测直线 ...

Color Space的博客 3400

js快速获取表单数据

js获取表单数据(快捷方式) 1、引入Jquery<script src="../js/jquery-1.10.2/jquery.min.js"></script> 2、HTML中添加from标签 <div> <form id="main"> <label>角色名称:</label> <input nam

wangshao5122的博客 1289

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用jquery获取表单数据,在控制台打印结果

使用jQuery获取表单数据,在控制台打印输出

m0_51442488的博客 1739

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

vue 项目中使用print.js实现表单的打印。

首先:在main.js中 import Print from '@/utils/print' // 引入js文件 Vue.use(Print); 在页面中: <div style="display: none"> //dispaly 用于显示或隐藏你需要打印的部分。 <div ref="print" > //命名ref...

qq_34312235的博客 3690

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[练习]用Js获取html页面中表单提交的数据并且返回到控制台

【代码】用Js获取html页面中表单提交的数据并且返回到控制台。

多多的博客 11万+

html表单获取后台数据,使用form表单提交请求如何获取后台返回的数据?

问题描述一般的form表单提交是单向的:只能给服务器发送数据,但是无法获取服务器返回的数据,也就是无法读取HTTP应答包。想要真正的半双工通讯一般需要使用Ajax, 但是Ajax对文件传输也很麻烦。解决方法方法一:jQuery封装了一个form表单提交有回调功能的方法导入jqueryjquery-form.js如下: 一个上传文件的form请选择头像:js实现// $(function ())是文...

weixin_29138345的博客 7418

js打印局部区域,并且保留input标签里的value值

项目中有个打印功能,要求用户填写数据后,点击打印,则把表单的内容打印出来,发现调用window.print()进行打印时,填写的数据没有获取到,原因就是$("#form").html()时,没包含有填写的数据,为了解决这问题,应该html()之前,把所有填写的数据都先val('XX')。 <html> <head> <script src="jquery-1.8.3.min.js"></script> <title>XXXXXX</tit

lifuhei_的博客 686

如何在Puppeteer中实现表单自动填写与提交:问卷调查

在现代市场研究中,问卷调查是一种重要的工具。企业通过在线问卷调查了解消费者对产品或服务的需求、偏好和满意度,从而为产品开发、市场营销和服务优化提供指导。然而,对于爬虫技术专家来说,批量自动化地填写和提交问卷调查可以帮助企业分析不同用户群体的行为模式、优化用户体验,以及进行大规模的市场分析。Puppeteer 是一个基于 Node.js 的无头浏览器自动化库,能够通过程序化的方式操控浏览器,完成网页交互、数据爬取、表单填写等任务。

ip16yun的博客 905

axios调用接口时用post 提交数据,后台获取不到提交的数据解决方法

调用接口常用的方式是axios,但在调的过程中会遇到很多问题,后台获取不到提交的数据\color{red}{后台获取不到提交的数据}后台获取不到提交的数据是其中之一。 问题\color{blue}{问题}问题 post请求传参时,数据已经提交,打开开发者工具,点击 network 里面的确有数据已经传过去了,但后台那里打印时没有获取到传过去的参数。所以解决方法如下: 解决方案\color{blue...

The One Who's at the Front 1579
上一篇: velocity往word/excel模版填充数据并导出
下一篇: 剖析etcd
夢_殤
博客等级 码龄15年 348粉丝 140原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值