浮起来的验证消息

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

 

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

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

 

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

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

 

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

 

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

 

  三个解决办法。

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

 

 

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

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

目录
相关文章
|
7天前
|
消息中间件
【面试问题】如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
【1月更文挑战第27天】【面试问题】如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
|
6月前
|
JavaScript 算法 Java
企业微信开启接收消息+验证URL有效性
企业微信开启接收消息、验证URL有效性、SHA1、提供接收和推送给企业微信消息的加解密接口、计算消息签名接口
107 1
企业微信开启接收消息+验证URL有效性
|
7天前
|
消息中间件 存储 Java
MQ怎么确保消息不丢失
MQ怎么确保消息不丢失
|
网络安全 数据库 网络协议
已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确。)
之前做好的asp.net部署后,发现 访问数据库时: 异常:已捕获: "已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确。
2067 0
Token校验失败,请检查确认 微信-消息推送
Token校验失败,请检查确认 微信-消息推送
776 0
Token校验失败,请检查确认 微信-消息推送
|
消息中间件 RocketMQ 开发者
消息发送1-消息校验|学习笔记
快速学习消息发送1-消息校验
101 0
消息发送1-消息校验|学习笔记
|
消息中间件 Java RocketMQ
发送确认订单失败消息演示|学习笔记
快速学习发送确认订单失败消息
71 0
发送确认订单失败消息演示|学习笔记
|
消息中间件 RocketMQ 开发者
测试发送消息和接受消息|学习笔记
快速学习测试发送消息和接受消息
92 0
测试发送消息和接受消息|学习笔记
|
消息中间件 Kafka
kafka模拟客户端发送、接受消息
producer   消息的生成者,即发布消息 consumer   消息的消费者,即订阅消息 broker     Kafka以集群的方式运行,可以由一个或多个服务组成,服务即broker zookeeper  协调转发    一、创建topic .
2056 0
微信公众平台开发(7)--验证消息的合法性
本文目录 1. 前言 2. 区分验证方法 3. 验证 4. 小结
202 0