浮起来的验证消息

简介:     在我之前的一篇文章《如何制作好一个提交按扭》中,讨论了表单提交相关的事宜,后来又在具体的项目实践中发现还有要完善的地方。关于验证消息的摆放问题。   如果你的版面够宽,并且客户没有要求,你可以自己设计界面,那还好,不会存在我所碰到的问题。

 

  在我之前的一篇文章《如何制作好一个提交按扭》中,讨论了表单提交相关的事宜,后来又在具体的项目实践中发现还有要完善的地方。关于验证消息的摆放问题。

  如果你的版面够宽,并且客户没有要求,你可以自己设计界面,那还好,不会存在我所碰到的问题。因为你完全可以常规地把用户输入出错时弹出的验证消息放在一块预先留好的空白地带。比如下面这样:

 

  这种方式是很常见用得非常多的方式。

  现在的问题是,客户给了你这样的界面:

 

  当你埋头苦干完成布局后,实际运行时出现这样的情况:

 

  你可以看到,可恶的验证消息把原先活生生的布局给糟蹋成了什么样子。于是我就寻思着,验证消息不能这么放,得另想出路。

 

  三个解决办法。

  一是只给出一条总的验证消息,不为每个输入都设置一条需要显示出来的消息。如非死不可的注册页面那样:

 

 

  这里的汇总验证消息会给出具体哪里出错了,比如上面说的请写出正确的邮件地址,然后很多时候,有些很不负责的开发人员并没有把工作做得像非死不可这样的大公司这样到位,只是在汇总验证消息这里给出一条固定的错误信息,比如“请检查表单中的错误后再提交”,具体是哪里填错了你丫自己找去吧。试想你在填一个拥有向十个条目的表单,系统又不给出更为具体的提示,而只是这样不负责任地叫你自己去找错误,是不是有砸键盘的冲动。当然,这样做的后果是丢失用户。为了争取用户,我们必需要提升用户的体验,用户体验做得越好,就越多人愿意用。

  其实提到用户体验,不止是给出友好的提示信息这块需要注意,很多地方很多细节,都是值得开发人员去细心拿捏的。虽然不一定每个用户都是挑剔的用户,但你拿一个考虑不够全面的产品出来给用户时,哪天用户遇到了一个更加注重细节的产品,这些细节用户是会体会到的,当用户丢失了你到时候来二次返工意义都没有多大了。这里给大家看个小小的细节问题,移动的无线上网业务的客户端产品,G3随e行的登陆界面:

 

 

 

  不知你们发现什么问题没有,当然这里我不说它的网有多破,功能什么的也不讨论,单看这个界面就让人感到有多狗血了,美工就犯了个常识性的错误。‘流量信息’和‘电话簿’的图标,看着是不是很扯,他们的倒影是拿图标图片直接翻转而来的!对于前面两个图标,没问题,但后面两个图标的倒影,稍微相像一下生活中放在桌子上的水杯就可以发现问题,哪有这么坑爹的倒影,看着真心蛋疼!下面我把这个界面倒影的逻辑应用到水杯上, 大家可以看看效果:

 

 

 

  同样的道理,电话簿也是这样的常识错误。虽然不是每个用户会发现或者在意这些东西,管他呢,只要功能没有bug能用就行,但这个真的不该成为开发人员偷懒的借口。如果没有追求完美的萝卜丝,苹果公司也走不到今天。

似乎扯远了,回到本篇文章的主题来。

这种显示验证消息的方式好不好,要说不好,非死不可这样的全球大公司都在用,肯定不能说不好。我猜可能是考虑到排版的问题,上面的输入框也都那么整齐,如果验证消息放在每个框的后面的话,会破坏整个布局的整齐性,放在输入框的下面会把下面的内容往下挤,在没有验证消息时又会把下面的内容抬上来。

 

  二是用弹框,像某著名华人论坛的注册页面那样:

 

 

  这样的方式需要用户点击确定,不是最佳的选择,你每次错误都要点击一下确定,表单内容少还无妨,内容多了错误的地方很多的话,那就点得有点手软了。

 

  最后就是让验证消息处于页面的上层,不跟表单内容在同一层,这样就不会把原来的布局破坏掉了。我更倾向于这种方式来显示表单的验证消息。这种方式不管用在哪里都不会有问题,特别是页面的Grid控件中,根本没有单独的空白来放置验证消息,都是拿来显示数据的区域。

 

  上图就是Kendo UI的Grid控件,这也是为什么它采用了把验证消息浮起来放在上层的原因。

  那,我们要实现这种浮起来的效果也是相当简单的,只需一句CSS代码。真的就只需一句,只要一句。

  我们可以查看一下网页源码,看它是怎么实现的,就可以从中找到答案。

 

 

  经验证,就是那个position属性在起作用,当我把这个CSS属性去掉后,验证消息就跑到Grid里面去了,破坏了原来的布局:

 

 

  所以,在以后的场合中,只需给你的验证消息加上position:absolute这条CSS语句,它就会在显示时浮于页面内容的上方,从而避免了破坏原来的布局。

  最后,我在项目中修改后,问题解决了。当你输入正确,验证消息会消失,不会影响其他操作。

 

 

相关连接

如何制作好一个提交按扭---我是个爱折腾的人

http://www.cnblogs.com/Wayou/archive/2012/09/19/how_to_make_a_nice_submit.html

目录
相关文章
|
小程序 开发者 异构计算
小程序真机调试反应很慢卡顿,界面跳转之后,页面出现空白,无法点击等问题解决方案
小程序真机调试反应很慢卡顿,界面跳转之后,页面出现空白,无法点击等问题解决方案
1463 0
小程序真机调试反应很慢卡顿,界面跳转之后,页面出现空白,无法点击等问题解决方案
|
9月前
|
人工智能 分布式计算 数据处理
云产品评测:MaxFrame — 分布式Python计算服务的最佳实践与体验
阿里云推出的MaxFrame是一款高性能分布式计算平台,专为大规模数据处理和AI应用设计。它提供了强大的Python编程接口,支持分布式Pandas操作,显著提升数据处理速度(3-5倍)。MaxFrame在大语言模型数据处理中表现出色,具备高效内存管理和任务调度能力。然而,在开通流程、API文档及功能集成度方面仍有改进空间。总体而言,MaxFrame在易用性和计算效率上具有明显优势,但在开放性和社区支持方面有待加强。
139 9
|
存储 数据安全/隐私保护 虚拟化
真人出镜的录屏软件,上手非常简单!文末有福利!
但,真的不要再来找不坑老师要camtasia的安装包了,它已经被国内某公司代理,四处投诉、发律师函呢!想要使用只能购买了!我已经多年不用这软件了。
462 0
|
10月前
|
网络协议 关系型数据库 MySQL
MySQL报ERROR 2002 (HY000)解决
通过上述步骤,可以有效地解决MySQL连接时出现的 `ERROR 2002 (HY000)`错误。这些步骤包括检查和启动MySQL服务、配置文件检查、套接字文件检查、日志文件分析、进程检查、防火墙设置、客户端配置和最终的MySQL重装。确保每个步骤都按顺序执行,有助于快速定位和解决问题,使MySQL服务器恢复正常运行。
7303 0
|
人工智能 数据可视化 物联网
10分钟微调专属于自己的大模型
本文主要介绍使用魔搭社区轻量级训练推理工具SWIFT,进行大模型自我认知微调,帮助初阶炼丹师快速微调出专属于自己的大模型。
|
Android开发 数据格式 XML
Android若干条并排RecyclerView滑动实时联动
Android若干条并排RecyclerView滑动实时联动 以水平方向并排排列的两条RecyclerView为例,实现一个简单的功能:这两个RecyclerView要实时联合滚动,即其中任意一个RecyclerView,将触发其余所有RecyclerView同时滚动相同。
2339 0
|
SQL 存储 JSON
Snuba:Sentry 新的搜索基础设施(基于 ClickHouse 之上)
Snuba:Sentry 新的搜索基础设施(基于 ClickHouse 之上)
574 0
Snuba:Sentry 新的搜索基础设施(基于 ClickHouse 之上)
|
NoSQL Java 关系型数据库
在云服务器上从零开始部署Spring项目
注意环境的版本,以及开放端口等问题!
Java 8 Function 函数接口
Java 8 Function 函数接口
416 0
|
NoSQL Linux C语言
Linux下调试段错误的方法[Segmentation Fault]--GDB
<p><span style="font-family:Verdana,Arial,Helvetica,sans-serif"><span style="font-size:14px; line-height:25px"><a target="_blank" href="http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857
5617 1