果iOS用户可以通过捷径(快捷指令)快速完成表单填写以提高工作效率。本文主要介绍如何通过捷径(快捷指令)调用 JavaScript 在网页运行的方式快速填写表单。
效果展示:
捷径(快捷指令)在网页上运行JavaScript 脚本基本格式:
var result=[];
// JavaScript代码
// 调用 Completion 以完成
completion(result);
123456
以疫情期间在校生出入校园申请表为例:
首先分析表单所需要填写的信息类型,在本例中,类型主要有文本框、单选按钮、时间选择器:
1. 文本框
对于文本框,我们可以通过定位文本框对应id,通过定义value的形式为文本框赋值。
document.getElementById('ZY').value="需要填写的内容";
1
2. 单选按钮
面对单选按钮,改变选择器样式并不能将内容最终插入最后提交的表单中,我们需要用到JavaScript的点击动作。
var event=new MouseEvent('click');
var XQ_click=document.getElementsByClassName('van-radio van-radio--horizontal')[1];
XQ_click.dispatchEvent(event);
12345
基本逻辑为:定义点击事件(MouseEvent继承自UIEvent)——定位选择按钮——实现点击。
关于定位选择按钮,这里再强调一下,对于没有独立id的选择按钮,可以通过其在ClassName中的具体位置序号予以定位。
3. 时间选择器
时间选择器数据的填写,我们可以直接使用捷径(快捷指令)的 当前日期功能:
document.getElementById('JTSDJS').value="当前日期";
1
值得注意的是:
这个表单内的元素全部位于id为formIframe的iframe内,因此在定位表单元素前还需要定位表单:
parent.document.getElementById(“formIframe”)
完整脚本:
var result=[];
parent.document.getElementById("formIframe").contentWindow.document.getElementById('ZY').value="需要填写的内容";
parent.document.getElementById("formIframe").contentWindow.document.getElementById('NJ').value="需要填写的内容";
parent.document.getElementById("formIframe").contentWindow.document.getElementById('BJ').value="需要填写的内容";
parent.document.getElementById("formIframe").contentWindow.document.getElementById('LXFS').value="需要填写的内容";
parent.document.getElementById("formIframe").contentWindow.document.getElementById('SZSS').value="需要填写的内容";
parent.document.getElementById("formIframe").contentWindow.document.getElementById('QJWCSY').value="需要填写的内容";
parent.document.getElementById("formIframe").contentWindow.document.getElementById('JTGJD').value="步行";
parent.document.getElementById("formIframe").contentWindow.document.getElementById('JKZK').value="健康";
parent.document.getElementById("formIframe").contentWindow.document.getElementById('JTSDKS').value="当前日期";
parent.document.getElementById("formIframe").contentWindow.document.getElementById('JTSDJS').value="当前日期";
//MouseEvent继承自UIEvent
var event=new MouseEvent('click');
var XQ_vant_click=parent.document.getElementById("formIframe").contentWindow.document.getElementsByClassName('van-radio van-radio--horizontal')[1];
var ZXTY_vant_click=parent.document.getElementById("formIframe").contentWindow.document.getElementsByClassName('van-radio van-radio--horizontal')[2];
var SFLJ_vant_click=parent.document.getElementById("formIframe").contentWindow.document.getElementsByClassName('van-radio van-radio--horizontal')[5];
XQ_vant_click.dispatchEvent(event);
ZXTY_vant_click.dispatchEvent(event);
SFLJ_vant_click.dispatchEvent(event);
// 调用 Completion 以完成
completion(result);
1234567891011121314151617181920212223242526
至此,本文也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。
多公司的业务需要收集和展示信息,但常常困惑于表单数量庞大,复用率不高等问题。动态HTML可填充表单是解决这一困境的理想方法。随着HTML和自适应HTML表单的发展,您可以超越静态PDF表单的范围,而且您可以在保证安全性的情况下做到这一点。许多企业级的工作流软件可能要上万元,而基于web架构,利用可填充的HTML表单作为工作流文件传递的系统,可以在任何设备上轻松访问,并通过已完成表单的所有渠道交付选项进行提交。业务流程的完整工作流可以通过与现有或新业务系统集成的单个表单解决方案来处理。它的好处是您不再需要大量修改业务软件,只要利用动态HTML表单作为出入系统的通道,让它成为连接您与客户、合作伙伴、供应商和员工的自动化信息通讯解决方案。
动态HTML表单在医疗上的可应用性
真正的动态HTML表单只显示与完成多步骤工作流的个人相关的问题和信息。效率和准确性是动态HTML表单的首要任务。在设计表单时,用户界面在重要功能列表中的位置也很高。用户不想浪费时间查看与其情况无关的字段、段落或按钮。我最近做了核磁共振检查,并收到了一份两页纸的合法大小的文件。考虑到核磁共振机是医院里最昂贵、技术最先进的机器之一,而且它们使用的是纸质表格耗损量也巨大。当我看到那些与我检查不相关的问题时,我忽然意识到这个诊断报告中的流程存在着多大的效率浪费。更不用说,在诊疗报告中有些部分实际上是空白的,也只能由核磁共振技术人员填充。于是,我联系了医院管理人员,向他们展示了表单的设计和收集数据的方式。许多情况下,当人们已经是您的客户或病人时,重复的提供地址和电话号码等基本信息,都是非常不必要的事。
根据用户所做的选择,动态HTML表单将只显示与每个选择相关的信息,从而最大限度地提高表单的实用性。无论是医务人员还是医院行政人员,时间对于他们来说太宝贵了,不能浪费在那些无关紧要的事情上。如果患者没有过敏症,他们选择“否”,表单列表上无需显示常见的过敏症列表。更明智地是使用动态HTML表单,如果患者对过敏原选择“是”,则表单可以自动调整以显示可能的新选项,从而触发显示表单字段,以便患者列出其过敏原。此外,表单还可以显示常见过敏原的复选框列表。
使用动态HTML表单收集数据的好处对于工作流和客户体验目标来说是巨大的。HTML自适应表单的一个最大优点是,它们为世界上所有人提供了安全地、可靠地的可填充表单,并且不需要依赖任何特殊的软件和硬件。例如,完成MRI表格的患者可以在就医前、在家里、在路上就完成,并且可以通过电子邮件将PDF发送给他们,以获取病患的记录。想象一下,在客户和业务方面,您的用户使用可填充表单可以减少多少步骤和时间。HTML表单是动态的、可移植的,在智能手机、平板电脑、PC上提供全渠道的交付,并且可以通过Web服务与任何业务软件一起工作。
动态可填充表单会根据输入的数据立即做出更改。例如,如果用户正在填写有关新实用程序服务的表单,则这些字段仅与该特定服务相关,并且可以根据需要提供可用的服务选项。另一个例子是保险单。根据所有必要的保险表单,您可以凭借用户的需要缩小或扩展表单的内容,不必填写不必要的字段,也不必占用客户大量的时间。
基于web的动态HTML表单最终能满足全渠道交付,这对客户来说是大有裨益的。
可填充表单可以是跨行业的解决方案。如前所述,医疗保健中存在一些场景,同样地在银行、教育、保险、制造、电信、公用事业也应使用动态可填充表单。这些行业的企业以及更多内部或从供应商、业务合作伙伴和客户外部收集数据,并向他们提供信息,尽可能的减少工作流中表单填写的时间,提升工作流效率。
arsley.js
Parsley.js是一个轻量级且功能丰富的库,它使用DOM中嵌入的数据属性来实现相同的功能,而不是使用Javascript验证表单。令人惊讶的易于配置的插件还使您可以覆盖几乎所有默认行为,使其符合您的表单要求。
quickValidation.js
quickValidation.js的工作原理类似于上面的Parsley。它没有在Javascript中定义规则,而是通过使用data-validateinput标签中的属性直接分配规则。它将诸如required,number,range=0-99之.quickValidate类的规则串在一起,然后添加类,添加data-name属性以为错误命名字段,然后就可以开始工作了。
jQuery番茄酱插件
Ketchup是一个轻量级(最小3.4KB)插件,附带18种基本验证,但是确实允许您轻松编写自己的验证并覆盖任何默认行为。
默认情况下,插件将检查data-validate表单字段的属性,以查看是否可以找到任何匹配的验证。验证的默认指标是validate(),所有验证都进入该位置,并以逗号分隔。验证也可以带有参数(也用逗号分隔)。
我自己是一名从事了多年开发的web前端老程序员,目前辞职在做自己的web前端私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴,想要获取的可以关注我的头条号并在后台私信我:前端,即可免费获取。
jQuery验证插件
jQuery Validation是一个“插件”插件,使客户端表单验证非常容易。它附带了一组有用的验证方法,同时还提供了一个API,可轻松编写您自己的API。
开始使用此插件所需要做的就是仅一行jQuery以选择表单并应用该插件,并在每个元素上加上一些注释以指定验证规则。
IV.js – Javascript输入验证
IV.js是一个jQuery库,它提供了一种使用验证过滤器和处理用户输入的直观方法。为了使用IV.js,您需要将IValidate类添加到表单中。
jQuery验证引擎
当涉及到jQuery Validation Engine时,您不必担心表单的结构,因为该插件会创建一个错误,DIV并将其放置在指定输入的右上角,从而使表单代码和验证分开。Phis可能是本文中最简单的验证解决方案。
BootstrapValidator
BootstrapValidator是一个用于验证Bootstrap表单的jQuery插件。
监护人
Guardian是一个灵活且易于扩展的通用表单验证jQuery插件。
验证码
Validatr使用HTML5输入属性来执行验证,以支持color,date,email,number和range。输入类型text,checkbox,radio...。支持,但不需要相同级别的验证。
在可能的情况下,Validatr将使用本机验证,并使用Modernizr来测试支持。如果不支持输入类型,它将使用它自己的规则集来补充本机验证。在两种情况下,都会显示验证消息。
Formance.js
Formance.js是一个基于Stripe的jQuery.payment库并受其启发的用于格式化和验证表单字段的库。
Fields.js
Fields.js带有MIT许可证,并提供了与字段进行交互的抽象方式。
jQuery验证
jQuery Validate是一个jQuery插件,可帮助您使用数据属性轻松而快速地完成表单验证。
jQuery表单验证
jQuery Form Validate是另一个jQuery插件,可让您通过从应用于每个输入的HTML 5数据属性中获取验证规则来验证HTML表单。
一审
单验证是用于一般验证目的的正则表达式的集合。为了进行验证,它将正则表达式分成模式的语义部分。
Validarium
Validarium是一个基于jQuery Validate的简单直接的jQuery验证插件。
验证准系统验证
从名称本身可以明显看出,Validate Barebones Validation是一个可配置和可扩展的准系统jQuery验证插件。
nextVal
nextVal是jQuery的客户端表单验证插件。
jQuery Super Labels插件
在jQuery的超级标贴插件获得焦点淡出输入一个值时,当使整个油田的标签幻灯片。
作者:游X鱼
链接:https://www.jianshu.com/p/d1519bacf66a
*请认真填写需求信息,我们会在24小时内与您取得联系。