如何在JavaScript中为ENTER事件充值
How to recharge an ENTER event in JavaScript
我有一个用AngularJS和Bootstrap开发的SPA。用户可以输入用户名和密码以登录到应用程序。我想允许在输入用户名和值后,按下ENTER键将触发登录过程,就像单击了Login
按钮一样。
我使用的代码是:
Charge_Enter_Event_for_Login = function () {
$(document).ready(function(){
$('#Username').keypress(function(e){
if(e.keyCode==13) {
$('#Do_Login').click();
return false;
}
});
$('#Password').keypress(function(e){
if(e.keyCode==13) {
$('#Do_Login').click();
return false;
}
});
});
}
Charge_Enter_Event_for_Login() ;
(元素Do_Login
是可以点击的按钮)。
这第一次还可以。但是,如果我注销,则不再触发该事件,除非我使用浏览器的重新加载按钮。
我还尝试在logout函数中调用函数Charge_Enter_Event_for_Login()
,但没有结果。
如果#Do_Login
按钮是<input type="submit">
标记,则当焦点在<input type="text">
或<input type="password">
元素上时按下ENTER时,它将自动触发。
为了回答这个问题,我的猜测是:当登录成功时,你可能以某种方式隐藏了登录表单?可能是通过销毁form
DOM对象。当稍后重新创建form
以在注销后再次显示登录表单时,您将需要再次附加事件,因为它是一个新的DOM对象。
您需要将angularjs指令ng-submit
与form
元素一起使用。您的代码看起来非常原始。请先浏览angular网站,了解angular指令是如何工作的。此外,如果您有angularjs,则不需要使用jQuery,因为您可以使用angular提供的双向绑定。我在这里为您的场景创建了一个jsbin。请使用它,并尽可能多地尝试使用angularjs
指令。
看起来您的事件仅在页面加载时绑定。你真的不应该把jquery用于这种事情。
您有两种可能的解决方案:
-
在输入上使用指令:
angular.module('yourAppName') .directive('submitAction', function () { return function (scope, element, attrs) { element.on("keypress", function (e) { e.preventDefault(); if(e.keyCode === 13) { scope.$apply(function () { scope.$eval(attrs.submitAction); }); } }); }; });
所以你的输入看起来是这样的:
<input type="text" id="Username" submit-action="functionToExecute()">
- 或者使用角度CCD_ 14指令:
<input type="text" id="Username" ng-keypress="functionToExecute($event)">
使用此解决方案,您需要检查函数中keyCode的值。
- Keyup 事件侦听器在 Chrome 的 Ominbox 上按下 Enter 时触发
- 如何在JavaScript中为ENTER事件充值
- 单击或按enter键时触发主干事件
- 单击按钮时提交 OnClick 事件,但在键盘上按 Enter 时不提交
- 防止在文本框中按 Enter 后触发模糊和键控事件
- 如何通过 Enter 键在剑道 UI 网格上触发过滤器事件
- 使用 jQuery 触发 Enter 事件
- 如何检测点击事件是否已由“Enter”触发
- 按下 Enter JavaScript 时的事件
- Google 地方自动填充place_changed事件会在提交表单后按 Enter 键触发
- j查询添加 在键事件 Enter 上,使用 将其发送到后端
- 页面不应在带有引导模式的fire-enter事件中刷新
- onKeypress在Chrome中不起作用的文本字段上的Enter Key事件
- 如何在jquery中识别ENTER事件
- Ontextchanged事件不工作,没有按enter或选项卡在asp
- 我怎么知道一个特定的事件.keyCode对应一个字符,而不是一个命令键(如箭头、tab或enter)
- 只需按Enter键即可附加文本更改事件
- Dojo /连接“onKeyPress"ENTER事件在本地工作,但在测试服务器上不起作用
- 如何将基于enter键的事件分配给选定的<
- 内的元素
- 在某些情况下,KeyPress事件不会在边缘触发Enter键