CN106156081A - 一种表单校验处理方法和设备 - Google Patents
一种表单校验处理方法和设备 Download PDFInfo
- Publication number
- CN106156081A CN106156081A CN201510149890.7A CN201510149890A CN106156081A CN 106156081 A CN106156081 A CN 106156081A CN 201510149890 A CN201510149890 A CN 201510149890A CN 106156081 A CN106156081 A CN 106156081A
- Authority
- CN
- China
- Prior art keywords
- dom
- form controls
- verification
- configuration information
- checking treatment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本申请实施例公开了一种表单校验处理方法和设备,包括:获取需要进行校验处理的文档对象模型dom;判断所述dom是否为表单控件;当判断结果为是,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。当页面发生变化时,只需要对该增加或移除的dom的进行校验处理,简化了表单开发过程,减少了代码维护成本。
Description
技术领域
本申请涉及网络技术领域,特别是涉及一种表单校验处理方法和设备。
背景技术
表单是整个互联网的输入端,承担着重大职责,因而对输入内容的前端校验变得非常重要,具有保证数据安全性和对用户进行提醒的双重作用,在实际表单开发中,表单校验占据了很大工作量。
复杂表单中,表单的结构经常会发生变化,引起表单中字段的增删。例如,产品表单中,指定不同的产品类目,会导致产品属性对应字段的变化。为了处理这种变化,现有技术中必须先移除先前字段的校验然后移除html(Hypertext Markup Language,超文本标记语言);在新html创建好后,再对其中的控件一一添加校验。
现有技术中提供了如下方法用于简化表单校验过程:
方法一、Html5标准中只需要移除、增加表单控件,不需要做额外的代码处理。
方法二、其他js validator,提供了针对单个表单控件的表单校验添加、移除方法。
针对于方法一,Html5标准局限性很多,例如浏览器兼容性支持、内置校验规则过少,校验出错、文案配置使用不便等;而且,由于校验规则都已经写在html表单控件上,校验规则的复用变得困难。因为这些原因,Html5原生表单校验无法在大部分表单场景中使用。
针对于方法二,由于传统js validator缺乏dom容器的校验机制,导致开发人员在程序中必须手动维护一些表单控件集及其配置文件,而且维护的过程中形成了css selector(或者表单控件dom)依赖,增加了程序代码的复杂度。譬如,动态增加某一区域的表单字段时,开发人员必须硬编码获取对应的表单控件dom,获取其配置文件,然后一一为其添加校验;整个过程非常繁琐,费时费力。
发明人在实现本发明的过程中,发现现有技术中存在如果下技术问题:
在复杂表单场景中,表单的字段常常根据页面的结构发生变化,无论增加或移除字段,都需要对每个字段增加或移除校验规则,在对增加或移除的字段进行校验时,都是对表单控件增加或移除校验,而表单含有众多表单控件,且是分散的,管理不便,对他们进行校验添加/移除校验,自然成本很高。
发明内容
本申请实施例提供一种表单校验方法,用于实现表单校验,包括:
获取需要进行校验处理的文档对象模型dom;
判断所述dom是否为表单控件;
当判断结果为是,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
当判断结果为否,则判断所述dom的孩子节点中是否包含表单控件;
如果所述dom的孩子节点中包含表单控件,则获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
其中,所述获取所述表单控件的校验配置信息,包括:
通过对所述表单控件的dom元素特性扫描获取所述表单控件的校验配置信息,或
扫描表单控件,当表单控件与预设的匹配策略匹配时,获取所述表单控件的校验配置信息。
其中,所述校验处理包括:增加校验或移除校验。
本申请实施例还提供一种表单校验设备,包括:
获取模块,用于获取需要进行校验处理的文档对象模型dom;
判断模块,用于判断所述获取模块获取的dom是否为表单控件;
校验模块,用于当所述dom为表单控件时,获取表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
判断模块,还用于当所述dom不是表单控件时,判断所述dom的孩子节点中是否包含表单控件;
校验模块,还用于当所述dom的孩子节点中包含表单控件时,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
其中,所述校验模块,还用于:
通过对所述表单控件的dom元素特性扫描获取所述表单控件的校验配置信息,或
扫描表单控件,当表单控件与预设的匹配策略匹配时,获取所述表单控件的校验配置信息。
其中,所述校验处理包括:增加校验或移除校验。
本申请实施例具有以下优点:获取需要进行校验处理的文档对象模型dom;判断所述dom是否为表单控件;当判断结果为是,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。当页面发生变化时,只需要对该增加或移除的dom的进行校验处理,简化了表单开发过程,减少了代码维护成本。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对本申请或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种表单校验处理方法的流程图;
图2为本申请实施例中一种表单增加校验方法的流程图;
图3为本申请实施例中一种表单增加校验方法的流程示意图;
图4为本申请实施例中一种表单校验处理设备的结构示意图。
具体实施方式
本申请的实施例包括:获取需要校验的文档对象模型dom;判断所述dom是否为表单控件;当判断结果为是,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请实施例提供的一种表单校验处理方法,具体包括以下步骤:
步骤S101、获取需要进行校验处理的文档对象模型dom;
当页面结构发生变化时,如果增加了某个dom,需要对这个dom增加校验;如果移除了某个dom,需要对这个dom移除校验。
需要进行校验处理的dom,即为需要增加或移除校验的dom。
步骤S102、判断所述dom是否为表单控件。
通过判断所述dom的元素类型是否为input或select或textarea或file等表单控件类型,判断所述dom是否为表单控件。
如果判断结果为是,则执行步骤S103;
如果判断结果为否,则执行步骤S104。
步骤S103、获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理,结束所述流程。
其中,获取所述表单控件的校验配置信息,包括:
方式一、通过对所述表单控件的dom元素特性扫描获取所述表单控件的校验配置信息。例如,如果扫描到<input required maxlength=“128”/>,便可以获得此表单控件的校验配置规则为:必填且字符长度最多为128,此种方式兼容,HTML5表单控件校验规则声明方法。
方式二、扫描表单控件,当表单控件与预设的匹配策略匹配时,获取所述表单控件的校验配置信息。
在进行匹配之前,已经预设了匹配策略及与匹配策略匹配的所有表单控件校验配置池,例如,匹配策略可以为dom属性、特性等,当扫描表单控件时,如果该表单控件的dom属性、特性等与匹配策略相匹配,则获取该表单控件的校验配置信息。
方式三、通过对所述表单控件的dom元素特性扫描获取所述表单控件的校验配置信息,以及扫描表单控件,当表单控件与预设的匹配策略匹配时,获取所述表单控件的校验配置信息共同获取校验配置信息。具体地,可以通过方式一获取部分校验配置信息,并通过方式二获取部分校验配置信息,或者预先设置优先级,根据优先级获取方式一或方式二中的校验配置信息。
根据所述校验配置信息对所述dom进行校验处理,具体为:表单校验处理设备维护了进行过校验处理的表单控件与对应的校验配置信息的映射关系,当获得表单控件的校验配置信息后,查询所述映射关系中是否存在所述表单控件与所述校验配置信息的对应关系,若存在,则已经存在所述表单控件的校验,需要将所述表单控件的校验移除;若不存在,则不存在所述表单控件的校验,需要根据所述校验配置信息添加所述表单控件的校验。
步骤S104、判断所述dom的孩子节点中是否包含表单控件;
当所述dom不是表单控件时,则认为此dom为容器,对该dom容器的所有孩子节点进行扫描,判断是否包含表单控件。其中,判断是否包含表单控件,可以通过查找孩子节点中是否包含input或select或textarea或file等表单控件类型的表单控件,判断是否包含表单控件。
步骤S105、如果所述dom的孩子节点中包含表单控件,则获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
通过对所述表单控件的dom元素特性扫描获取所述表单控件的校验配置信息,或扫描表单控件,当表单控件与预设的匹配策略匹配时,获取所述表单控件的校验配置信息。
具体的获取所述表单控件的校验配置信息的方式以及根据所述校验配置信息对所述dom进行校验处理如步骤S103,此处不再赘述。
本申请实施例具有以下优点:获取需要进行校验处理的文档对象模型dom;判断所述dom是否为表单控件;当判断结果为是,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。当页面发生变化时,只需要对该增加或移除的dom的进行校验处理,简化了表单开发过程,减少了代码维护成本。
下面结合具体的应用场景对上述实施例进行详细的说明,本实施例以物流选择表单为例进行说明,当物流由国际快递切换为海运拼箱时,需要对国际快递容器移除校验,对海运拼箱容器添加校验。
如图2所示,为对国际快递移除校验的过程,包括以下步骤:
步骤S201、获得国际快递条件下的需要进行校验处理的dom。
步骤S202、判断所述dom的元素类型是否为input或select或textarea或file等表单控件类型。
具体地,扫描国际快递条件下的所有dom的input,select,textarea标签,判断所述dom是否为input或select或textarea或file等表单控件类型。
步骤S203、当所述dom的元素类型不是input或select或textarea或file等表单控件类型时,对所述dom的所有孩子节点进行扫描。
具体地,扫描所述dom的孩子节点的input,select,textarea标签。
步骤S204、判断所有的孩子节点中是否包含input或select或textarea或file等表单控件类型的表单控件。
步骤S205、对每一个表单控件的dom元素特性扫描,获取所述表单控件的校验配置信息。
步骤S206、根据所述校验配置信息对所述dom移除校验。
具体地,获得所述表单控件的校验配置信息后,查询映射关系中存在所述表单控件以及所述校验配置信息的对应关系,移除所述dom的校验。
本申请实施例具有以下优点:获取需要进行校验处理的文档对象模型dom;判断所述dom是否为表单控件;当判断结果为是,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。当页面发生变化时,只需要对该增加或移除的dom的进行校验处理,简化了表单开发过程,减少了代码维护成本。
如图3所示,为对海运拼箱增加校验的过程,包括以下步骤:
步骤S301、获得海运拼箱条件下的需要进行校验处理的dom。
步骤S302-S304与步骤S202-S204相同,此处不再赘述。
步骤S305、预设匹配策略及与匹配策略匹配的所有表单控件校验配置池。
匹配策略可以为dom属性、特性等。
需要注意的是,步骤S305与前述的S301-S304之间不存在先后关系。
步骤S306、当判断结果为是,扫描表单控件时,如果该表单控件的dom属性、特性等与匹配策略相匹配,则获取该表单控件的校验配置池中的校验配置信息。
步骤S307、根据所述校验配置信息对所述dom增加校验。
具体地,获得所述表单控件的校验配置信息后,查询映射关系中不存在所述表单控件以及所述校验配置信息的对应关系,根据所述校验配置信息,增加所述dom的校验。
本申请实施例具有以下优点:获取需要进行校验处理的文档对象模型dom;判断所述dom是否为表单控件;当判断结果为是,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。当页面发生变化时,只需要对该增加或移除的dom的进行校验处理,简化了表单开发过程,减少了代码维护成本。
本申请实施例提供一种校验处理设备,如图4所示,包括:
获取模块41,用于获取需要进行校验处理的文档对象模型dom。
所述校验处理包括:增加校验或移除校验。
判断模块42,用于判断所述获取模块获取的dom是否为表单控件;
校验模块43,用于当所述dom为表单控件时,获取表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
校验模块42,通过对所述表单控件的dom元素特性扫描获取所述表单控件的校验配置信息,和/或
扫描表单控件,当表单控件与预设的匹配策略匹配时,获取所述表单控件的校验配置信息。
判断模块42,用于当所述dom不是表单控件时,判断所述dom的孩子节点中是否包含表单控件。
校验模块43,用于当所述dom的孩子节点中包含表单控件时,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
校验模块43维护了进行过校验处理的表单控件与对应的校验配置信息的映射关系,当获得表单控件的校验配置信息后,查询所述映射关系中是否存在所述表单控件与所述校验配置信息的对应关系,若存在,则已经存在所述表单控件的校验,需要将所述表单控件的校验移除;若不存在,则不存在所述表单控件的校验,需要根据所述校验配置信息添加所述表单控件的校验。
本申请实施例具有以下优点:获取需要进行校验处理的文档对象模型dom;判断所述dom是否为表单控件;当判断结果为是,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。当页面发生变化时,只需要对该增加或移除的dom的进行校验处理,简化了表单开发过程,减少了代码维护成本。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本申请的保护范围。
Claims (8)
1.一种表单校验处理方法,其特征在于,所述方法包括:
获取需要进行校验处理的文档对象模型dom;
判断所述dom是否为表单控件;
当判断结果为是,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
当判断结果为否,则判断所述dom的孩子节点中是否包含表单控件;
如果所述dom的孩子节点中包含表单控件,则获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
3.如权利要求1或2所述的方法,其特征在于,所述获取所述表单控件的校验配置信息,包括:
通过对所述表单控件的dom元素特性扫描获取所述表单控件的校验配置信息,和/或
扫描表单控件,当表单控件与预设的匹配策略匹配时,获取所述表单控件的校验配置信息。
4.如权利要求1或2所述的方法,其特征在于,所述校验处理包括:增加校验或移除校验。
5.一种表单校验处理设备,其特征在于,包括:
获取模块,用于获取需要进行校验处理的文档对象模型dom;
判断模块,用于判断所述获取模块获取的dom是否为表单控件;
校验模块,用于当所述dom为表单控件时,获取表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
6.如权利要求5所述的设备,其特征在于,
所述判断模块,还用于当所述dom不是表单控件时,判断所述dom的孩子节点中是否包含表单控件;
所述校验模块,还用于当所述dom的孩子节点中包含表单控件时,获取所述表单控件的校验配置信息,并根据所述校验配置信息对所述dom进行校验处理。
7.如权利要求5所述的设备,其特征在于,所述校验模块,还用于:
通过对所述表单控件的dom元素特性扫描获取所述表单控件的校验配置信息,和/或
扫描表单控件,当表单控件与预设的匹配策略匹配时,获取所述表单控件的校验配置信息。
8.如权利要求5或6所述的设备,其特征在于,所述校验处理包括:增加校验或移除校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510149890.7A CN106156081A (zh) | 2015-03-31 | 2015-03-31 | 一种表单校验处理方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510149890.7A CN106156081A (zh) | 2015-03-31 | 2015-03-31 | 一种表单校验处理方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106156081A true CN106156081A (zh) | 2016-11-23 |
Family
ID=57337899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510149890.7A Pending CN106156081A (zh) | 2015-03-31 | 2015-03-31 | 一种表单校验处理方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106156081A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990952A (zh) * | 2017-02-28 | 2017-07-28 | 福建天泉教育科技有限公司 | 基于Vue.js的表单校验方法及其系统 |
CN108804399A (zh) * | 2017-05-04 | 2018-11-13 | 腾讯科技(北京)有限公司 | 表单的校验方法及装置 |
CN109725954A (zh) * | 2018-12-21 | 2019-05-07 | 中链科技有限公司 | 一种动态数据项处理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819766A (zh) * | 2011-06-09 | 2012-12-12 | 金蝶软件(中国)有限公司 | 一种表单校验方法、装置及企业系统 |
CN103106186A (zh) * | 2013-01-22 | 2013-05-15 | 百度在线网络技术(北京)有限公司 | 一种表单校验方法及系统 |
CN104281662A (zh) * | 2014-09-24 | 2015-01-14 | 蓝盾信息安全技术有限公司 | 一种控制html输入框输入长度的方法 |
-
2015
- 2015-03-31 CN CN201510149890.7A patent/CN106156081A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819766A (zh) * | 2011-06-09 | 2012-12-12 | 金蝶软件(中国)有限公司 | 一种表单校验方法、装置及企业系统 |
CN103106186A (zh) * | 2013-01-22 | 2013-05-15 | 百度在线网络技术(北京)有限公司 | 一种表单校验方法及系统 |
CN104281662A (zh) * | 2014-09-24 | 2015-01-14 | 蓝盾信息安全技术有限公司 | 一种控制html输入框输入长度的方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990952A (zh) * | 2017-02-28 | 2017-07-28 | 福建天泉教育科技有限公司 | 基于Vue.js的表单校验方法及其系统 |
CN106990952B (zh) * | 2017-02-28 | 2020-08-18 | 福建天泉教育科技有限公司 | 基于Vue.js的表单校验方法及其系统 |
CN108804399A (zh) * | 2017-05-04 | 2018-11-13 | 腾讯科技(北京)有限公司 | 表单的校验方法及装置 |
CN108804399B (zh) * | 2017-05-04 | 2023-07-18 | 腾讯科技(北京)有限公司 | 表单的校验方法及装置 |
CN109725954A (zh) * | 2018-12-21 | 2019-05-07 | 中链科技有限公司 | 一种动态数据项处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101471818B (zh) | 一种恶意注入脚本网页检测方法和系统 | |
CN104410667B (zh) | 一种xml报文到json报文的转换方法及系统 | |
CN102662966B (zh) | 一种面向主题的获取动态页面内容的方法及系统 | |
CN103389969A (zh) | 一种用于移动终端预览pdf文件的方法、装置和系统 | |
TW201520813A (zh) | 惡意程式清除之行動內容資料管理裝置和方法 | |
CN103686244A (zh) | 视频数据的管理方法及其系统 | |
CN104320312B (zh) | 网络应用安全测试工具及模糊测试用例生成方法和系统 | |
CN104063401A (zh) | 一种网页样式地址合并的方法和装置 | |
EP2521043A1 (en) | Method for establishing a relationship between semantic data and the running of a widget | |
CN105893571A (zh) | 一种视频内容标签的建立方法和系统 | |
CN107315682A (zh) | 测试浏览器兼容方法、装置、存储介质及电子设备 | |
CN110083722A (zh) | 一种电子图纸查找方法、装置、设备及可读存储介质 | |
CN104317909A (zh) | 兴趣点数据的校验方法和装置 | |
CN106156081A (zh) | 一种表单校验处理方法和设备 | |
CN110020412B (zh) | 一种生成imix标准报文的方法、装置及电子设备 | |
CN103761257A (zh) | 基于移动浏览器的网页处理方法及系统 | |
CN103902539A (zh) | 可扩展标记语言数据解析方法及装置 | |
CN102203734A (zh) | 条件处理方法和设备 | |
CN105573980A (zh) | 信息片段生成方法和装置 | |
CN102799629B (zh) | Wsdl文件质量保证系统及其实现方法 | |
CN102902686A (zh) | 一种网页检测的方法及系统 | |
CN106708479B (zh) | 一种页面渲染方法及装置 | |
CN106126299A (zh) | 业务插件的处理方法及装置 | |
CN113343066A (zh) | 页面处理方法、装置、电子设备和存储介质 | |
CN105574164B (zh) | Excel文档的数据解析方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161123 |
|
RJ01 | Rejection of invention patent application after publication |