文本框删除或者填写自动获取焦点

快乐打工仔 分类:实例代码

为了人性化,如果有多个文本框的话,填写或者删除一个文本框内容之后会自动跳到下一个文本框。

下面就通过代码实例详细介绍一下如何实现此功能。

代码实例如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>前端教程网</title>
<style type="text/css">
.inp > input {
  width: 50px;
  height: 50px;
  font-size: 40px;
  text-align: center;
}
.inp span {
  font-size: 40px;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
  $('.inp>input').keypress(function (event) {
    if (event.keyCode != 8) {
      var num = $(this).attr('class').substr(-1)
      num = parseInt(num) + 1
      $('.put' + num).focus()
    }
  })
 
  $('.inp>input').keyup(function (event) {
    if (event.keyCode == 8) {
      var num = $('.inp>input:focus').attr('class').substr(-1)
      num = parseInt(num) - 1
      $('.put' + num).focus()
    }
  })
})
</script>
</head>
<body>
  <section class="inp">
    <input type="text" name="" class="put1" maxlength="1" placeholder="0" />
    <input type="text" name="" class="put2" maxlength="1" placeholder="0" />
    <span>.</span>
    <input type="text" name="" class="put3" maxlength="1" placeholder="0" />
    <input type="text" name="" class="put4" maxlength="1" placeholder="0" />
    <span>%</span>
  </section>
</body>
</html>

上面的代码实现了我们的要求,下面介绍一下它的实现过程。

代码注释:

(1).$(document).ready(function () {}),当文档结构完全加载完毕再去执行函数中的代码。

(2).$('.inp>input').keypress(function (event) {}),为input元素注册keypress事件处理函数。

(3).var num = $(this).attr('class').substring(3),获取input元素class属性值最后一个数字字符。

(4).num = parseInt(num) + 1,数字加1,也就是下一个input元素的class属性值最后一个数字值。

(5).$('.put' + num).focus(),下一个input元素获取焦点。

上面介绍的是填写的时候能够实现下一个元素自动获取焦点,后面的代码实现的是删除的时候,上一个元素自动获取焦点,原理是一样的,更多的内容可以参阅相关阅读,或者留言。

文本框删除或者填写自动获取焦点,这样的场景在实际项目中还是用的比较多的,关于文本框删除或者填写自动获取焦点就介绍到这了。

文本框删除或者填写自动获取焦点属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容