变态输入框——再谈校验包容性(一)(2)
来源:Heidi格物志 发布时间:2009-10-10 13:23:00
于是,纠结的恶梦从此开始了。
刚开始,我想得简单,写了几个case要求:
Case 1:B,C(A是前面的起订量,本文为了力求简单,忽略此项) 输入框都不填或清空时点击GO——页面刷新,执行在现有筛选条件上应用价格从0到无穷大的筛选。
Case2:B,C三个输入框中任何一个填写非数字及小数点的字符时——自动清空,不弹出任何提示。
注意:只清除非规范填写字符,保留符合要求的字符(数字和小数点)。举例,用户粘贴7a7到B或C输入框,自动清楚中间的a。
Case3:在B和C输入框里输入前大后小数字,点击GO,页面刷新后,输入框数字自动调整为前小后大。
Case4:B填写正常数字如100,C留空,点击GO——页面刷新,结果数为大于或等于100的结果。
Case5:B留空,C填写正常数字,如100,点击GO——页面刷新,结果数为小于或等于100的结果。
可是到了测试的阶段,才发现测试MM才是最变态的,她们总是能够找出更变态的Case,发现漏洞,于是,多亏了我们非常牛的前端工程师,体现了什么是见招拆招——Nothing is impossible~
补充了case:
Case6:B和C两个输入一样的数字(如100),前端自动转换为0到100,点击go后,提取价格小于或等于100的产品结果。
Case8: 输入框如果只输入小数点,执行同Case1.
某天,前端又提出一个问题:允许输入小数点,如果输入两个小数点怎么办?
继续咬牙补充:
小数位只允许输入2位,比如用户输入6.678,会自动清除8。
小数点若输入两个,自动保留第一个,清除第2个。比如输入6.6.,会清除第二个小数点——变成6.6。
测试MM又问了:如果粘贴6.6.6怎么办?是呀,粘贴怎么办呢?我都快要放弃了,咱还是整个弹出框警告一下用户吧。不过,那不就功亏一篑了吗?所以,后来变成了66.60。
最后,经过很多次的测试和各种变态的想法,此输入框终于检测通过。
背后则是前端工程师付出心血——代码,神奇的代码……将在续篇中由前端来继续揭秘。
作为交互设计师的心得:
其实开始想法挺简单的,就是想让校验亲和一些,不要动辄提示用户出错而是润物细无声,帮用户纠错完成任务。
随着项目的进行和更多人的加入,发现要想周全考虑各种情况,是很难的事情。
而且,自己也开始反思,这种强制替用户做主,是不是一件好事,或者本身就不该这么做。用户输入错了,就干脆提示他错了,让他自己有意识去修改,让出错显性和透明化,会不会更加好一些?
另外,这些变态的输入用户毕竟是极少数,为了这极少数的人太纠结,虽然是照顾到了设计的各个微笑的细节,但是如果考虑投入产出比,可能会有些因小失大。除非以后能够将这些已经开发出来的控件标准化,以应用到以后的项目里。


猜你喜欢
- Insert 和 Update假设现在你要把下面的数据插入到数据库中.ID = 3TheDate=mktime(0,0,0,8,31,200
- 一、JDBC概述JDBC全称Java Database Connectivity,它是一个独立于特定数据库管理系统、通用的SQL数据库存取和
- 背景今天在工作中,同事遇到一个上传图片的问题:系统要求的图片大小不能超过512KB。但是同事又有很多照片。这要是每一个照片都用ps压缩的话,
- 本文实例为大家了Python中列表(List)的详解操作方法,供大家参考,具体内容如下1.创建列表。只要把逗号分隔的不同的数据项使用方括号括
- 神经网络梯度下降法在详细了解梯度下降的算法之前,我们先看看相关的一些概念。1. 步长(Learning rate):步长决定了在梯度下降迭代
- python中pass的作用?pass代表一个空的语句块Python中pass的作用:示例1,定义一个类,类中没有任何内容保存,运行之后,该
- 一般做法都是用aspjpeg的组件,这里有份用法说明,看一下吧。aspjpeg是一款非常强大的图片处理组件,纯英文版本。不过早已经有免费版和
- 本文实例讲述了js实现遮罩层弹出框的方法。分享给大家供大家参考。具体分析如下:昨天公司网站需要弹窗提示一些信息,要我在把弹窗的js代码和弹窗
- 目录元组简单介绍声明元组元组与列表的区别特殊的元组元组的简写元组常见运算操作索引 [ ] 取值切片 [ : : ] 取值运算符 +运算符 *
- 我们先看一下相关数据结构的知识。 在学习线性表的时候,曾有这样一个例题。 已知一个存储整数的顺序表La,试构造顺序表Lb,要求顺序表Lb中只
- python自带了日志模块logging,可以用来记录程序运行过程中的日志信息。同时python还有logbook模块用来取代logging
- 目录建表查看数据库文件:插入查询删除补充:Mysql自动按月表分区MySQL单表数据量,建议不要超过2000W行,否则会对性能有较大影响。最
- 1、版本说明 :python 2.7.10, Django (1.6.11.6),centos72、步骤说明:A、django 建立项目dj
- 前言"胸藏文墨怀如谷,腹有诗书气自华"。 —&mda
- 运行下列脚本,可以打印出模型各个节点变量的名称:from tensorflow.python import pywrap_tensorflo
- mysql 创建数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱
- Python是世界上最受欢迎的编码语言之一,在80年代后期首次受到ABC和Modula-3语言的影响而被概念化。从1991年的第一个版本到成
- 前言Node 给前端开发带来了很大的改变,促进了前端开发的自动化,我们可以简化开发工作,然后利用各种工具包生成生产环境。如运行sass sr
- 设置自动生成作者信息1、file->settings->Editor->file and code templates-&
- 首先:确认自己安装有python(没有安装的同学可自行安装,这里我们不过多赘述)确认安装有python之后,win+r打开cmd窗口,输入p