在web开发中,表单提交是最普通不过的事情了,也是使用很频繁的一种交互方式,例如我们几乎每天都有遇到的用户登陆。

绝大部分的网站在为用户提供服务时都要求用户进行登陆,这无可厚非,暂时也是必然的选择,否则怎么能为用户提供个性化的服务呢?

闲话又扯了一大堆,说正事吧。登陆既然必不可少,那就登陆呗,不过这里也是有些值得探究的。现在不都提倡用户体验吗,登陆这个事情自然也应该优化一下,其实这个早在很多年前就有了,比如登陆时的记住密码,选中后用户下次访问网站就不必再进行登陆了,不过对于现代人对隐私性的要求及安全性的考虑,有些时候是不太适合做记住密码处理的,这样用户每次必须重新登陆才可。

记得有人说过,能让用户点一下,就不要让用户点两下,我们的上帝时间很宝贵的,也是很懒的哦,呵呵。出于这样的考虑,当用户输入完用户名、密码时,接下来要做的就是点击登陆,可是一般情况下,输入是在键盘上操作的,而要点击“登陆”,需要换手到鼠标,然后移动到登陆按钮上点击才能完成登陆,这样的操作虽然并不是很麻烦,但是本着精益求精的精神,我们应该压榨再压榨,把它榨干为止。

其实很简单啦,用户输入完成,敲下回车就能实现登陆,这样的速度绝对秒杀鼠标点点吧。

这里飞尘要想多了一点,其它的表单也是可以回车提交的,所以这里处理起来有一点需要注意的,填表单的时候,一般情况下浏览器会记录用户曾经输入的内容,如果用户输入相同的内容,之前的历史会下拉显示,这时用户通过键盘方向键可以直接选择内容,回车确定,这里就需要将这样的回车区别开来,否则直接提交表单就不是我们所希望的了。

罗里吧嗦的说了那么多,口都干了,赶紧上点实货吧。众里寻他千百度,暮然回首,代码就在灯火阑珊处。

```javascript

// 输入回车键执行登录,但是用回车键在浏览器的历史记录中选择用户名时不触发登录 var oldValue = null; $(‘input.someClass’).unbind(‘keydown keyup’).keydown(function(event) { var me = $(this); if (event.which == 13) { oldValue = me.val(); } }).keyup(function(event) { var me = $(this); if (event.which == 13 && me.val() == oldValue) { // do login or some process } }); \n```