jQuery MiniUI

 找回密码
 立即注册
查看: 2360|回复: 1
打印 上一主题 下一主题

建议:关于表单输入验证方面的改进措施及方式 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-1-23 16:34:47 |只看该作者 |倒序浏览
你好:

目前,在表单的输入验证方面,已经实现了若干多种验证方式,但根据我的经验来看,目前验证方式还存在不少的不足处,导致在使用验证时,经常需要书写各类自定义验证脚本.

主要问题在于没有提供组合的验证方式.
比如:当验证一个URL时,可直接使用vtype="url"形式进行验证.
但为了避免输入的URL过长(比如数据库字段仅50字节),那么我还需要验证输入的文本长度不能超过50个字节,在这种情况下,所提供的验证就无能为力了.
再比如,目前提供了数字范围验证,可如果我要求输入的数字,不能有小数只能为整数,显然该验证又无法实现了.

如何改进呢?很简单,只需要提供"组合"式验证即可.
针对上述2种要求,如果可以如下实现(多个验证写在一起,中间以分号分隔):

vtype="url;maxlength:50;" //验证必须是URL格式且长度不能超过50字节
vtype="range:0,100;int;"  //必须输入整数且数字范围在0-100之间.

如上,对于验证代码的改造,相对简单且调整的代码量最小.

同时,由于每个验证所涉及的范围变得非常小,因此可以扩大更多的预定义的验证方法,而每个基本验证方法只需要关心本验证所涉及的各类参数即可,不需要关心是否非空,是否长度验证什么的,也符合基本方法功能最小的开发原则.
比如:可以提供如:必须以何开头、结尾、包含、不包含,不得以何开头、结尾,必须英文、中文、不得英文、中文,不得包含HTML代码,文本比较,不同控件值比较等诸多验证方式。

Rank: 9Rank: 9Rank: 9

沙发
发表于 2013-1-23 16:55:28 |只看该作者
表单验证规则示例:http://www.miniui.com/demo/#src=form/rules.html
1.验证属性: vtype="email" 等。
2.组合验证:vtype="email;rangeLength:2,6" 。
3.自定义验证事件:onvalidation="onEnglishValidation"
4.可以将自定义验证规则,做成验证标签,如:vtype="english"
应该能满足到你所有的要求。
对于常用的扩展验证规则,你可以做成验证标签,更方便使用。

Archiver|普加软件

GMT+8, 2024-11-26 14:29 , Processed in 1.039635 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部