enter键切换焦点,input获得焦点后placeholder消失

需求:充分考虑用户体验,输入用户名和密码时,不用按Tab键,而是按enter键就可以进行上下切换。并且为了其美观性,在input获得焦点时,placeholder会消失。

描述:通常在做input来提交用户名和密码时,会用placeholder来提示用户。比如:
这里写图片描述

但是当用户输完用户名后,很少用户知道用Tab键来切换到密码处,只能用鼠标,操作不便也浪费时间,为了改善用户的体验,我们可以让用户输完用户名后按enter键来切换到密码处,方便快捷。

<!--这是最外层的父元素-->
<div class="login-form" onkeypress="if(event.keyCode === 13){document.getElementById('username').focus();}else{document.getElementById('user_pwd').focus();}}"></div>

在input获得焦点后,placeholder中的内容不会消失,若是给input内容居中(text-align: center),在获得焦点时就会很尴尬,一个字被拆分了,比如:
 焦点在“码”字中间了

为了避免这种情况的发生,我们可以让input在获得焦点时,placeholder消失,比如这样:
placeholder内容小时

于是,我们可以这样写:

<input type="password" class="form-control" name="password" id="user_pwd" autocomplete="off" placeholder='请输入密码,密码不能少于4位' onfocus="this.placeholder=''" onblur="this.placeholder='{% trans "请输入密码" %}'">

整体写下来就是:

<div class="login-form" onkeypress="if(event.keyCode === 13){document.getElementById('username').focus();}else{document.getElementById('user_pwd').focus();}}">
    <div class="form-group">
        <input type="text" class="form-control" name="username" id="username" placeholder="请输入用户名" autocomplete="off" onfocus="this.placeholder=''" onblur="this.placeholder="请输入用户名">
    </div>
    <div class="form-group password-group">
        <input type="password" class="form-control" name="password" id="user_pwd" autocomplete="off" placeholder='请输入密码,密码不能少于4位' onfocus="this.placeholder=''" onblur="this.placeholder="请输入密码,密码不能少于4位">
    </div>
</div>

欢迎批评~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值