vue中实现回车键登录功能


Posted in Javascript onFebruary 19, 2020
created() {
 let that = this;
 document.onkeypress = function(e) {
 var keycode = document.all ? event.keyCode : e.which;
 if (keycode == 13) {
 that.login();// 登录方法名
  return false;
 }
 };
 }

以上的代码,在这几天测试发现有一个问题,在登录进系统之后,从首页切换到其他界面,点击回车,会导致界面调整到首页!

要实现:

只在Login界面点击回车才执行onkeypress方法,其他的点回车均不触发(还不明白为什么在其他界面回车会执行Login界面的created-_-|| )

思路:

在Login.vue最外层绑定id,再绑定键盘事件。

$(“#loginDiv”).bind("keypress",toLogin);

测试发现监听不到按键事件,因为div元素没法获取焦点,但只要为div元素加上tabIndex属性就能获取焦点

<div tabIndex=-1></div>

以上方法虽然也能触发keypress,但还有点瑕疵~ 就是打开登录页时,需要鼠标点一下界面,才能触发keypress!!!

又一思路:界面中需要有一个聚焦,在回车时才好执行keypress。故在界面中加input文本框,让不管从哪里打开或跳到Login.vue都聚焦文本框

所以自定义指令:

<div id="loginDiv" tabindex="1" style="outline:0;" >
 <input type="text" v-focus style="opacity:0;position:absolute;">
</div>
directives: {
 focus: {
 // 指令的定义
 inserted: function (el) {
 el.focus()
 }
 }
},

自定义指令及inserted用法截图自vue官网文档如下:

vue中实现回车键登录功能

vue中实现回车键登录功能

知识点补充:

vue项目里登录界面实现回车登录

方法一:

在vue的created钩子函数中写

//登录添加键盘事件,注意,不能直接在焦点事件上添加回车
 // let that = this;
 // document.onkeydown = function (e) {
 //  e = window.event || e;
 // if(that.$route.path=='/login'&&(e.code=='Enter'||e.code=='Num Enter')){//验证在登录界面和按得键是回车键enter
 //  that.handleSubmit2('ruleForm2');//登录函数 (handleSubmit2('ruleForm2')-登录按钮的点击事件)
 // }
 // }

注意:只对主键盘的Enter管用

方法二:

在vue的created钩子函数中写

var _self = this;
  document.onkeydown = function(e){
  var key = window.event.keyCode;
  if(key == 13 || key == 100){
   _self.handleSubmit2('ruleForm2');
  }
 }

对主键盘和小键盘的Enter都管用

总结

以上所述是小编给大家介绍的vue中实现回车键登录功能,希望对大家有所帮助,也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
深入理解JavaScript系列(16) 闭包(Closures)
Apr 12 Javascript
详解JS 比较两个Json对象的值是否相等的实例
Nov 20 Javascript
js中的for如何实现foreach中的遍历
May 31 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
Aug 12 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
Nov 26 Javascript
Vuex之理解Getters的用法实例
Apr 19 Javascript
React styled-components设置组件属性的方法
Aug 07 Javascript
vue路由对不同界面进行传参及跳转的总结
Apr 20 Javascript
layui 弹出层值回传解决方式
Nov 14 Javascript
JS控制下拉列表左右选择实例代码
May 08 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
Jun 03 Javascript
Vue中使用JsonView来展示Json树的实例代码
Nov 16 Javascript
Vue中实现回车键切换焦点的方法
Feb 19 #Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
Feb 19 #Javascript
Vue常用的全选/反选的示例代码
Feb 19 #Javascript
详解node和ES6的模块导出与导入
Feb 19 #Javascript
JS实现分页导航效果
Feb 19 #Javascript
vue随机验证码组件的封装实现
Feb 19 #Javascript
JavaScript实现PC端四格密码输入框功能
Feb 19 #Javascript
You might like
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
jquery 插件开发方法小结
2009/10/23 Javascript
javascript整除实现代码
2010/11/23 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
python中property和setter装饰器用法
2019/12/19 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
科级干部考察材料
2014/02/15 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
500字小学生检讨书
2015/02/19 职场文书
高中班主任寄语
2019/06/21 职场文书
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
纯html+css实现打字效果
2021/08/02 HTML / CSS