在我的聊天应用程序中,有一些文本字段可以获取用户登录详细信息。
填写用户详细信息时,如果用户突然按下ESC键,数据将丢失。
我需要禁用ESC键的功能吗?我需要使用哪个活动?我怎么能这样做。
我的Java脚本代码是,
function esc(e){
e = e || window.event || {};
var charCode = e.charCode || e.keyCode || e.which;
if(charCode == 27){
return false;
}
}
在Stack overflow和google中搜索了很多。没有任何工作。请任何人帮助我这样做。感谢..
答案 0 :(得分:6)
您可以将eventlistener绑定到输入字段,以便在按下 Esc 并捕获它时捕获事件。
document.querySelector("input").addEventListener("keydown",function(e){
var charCode = e.charCode || e.keyCode || e.which;
if (charCode == 27){
alert("Escape is not allowed!");
return false;
}
});
答案 1 :(得分:3)
我得到了使用以下代码控制“F5,Esc,BackSpace(BS)”键的解决方案。
我的Java脚本代码将是,
document.attachEvent("onkeydown", win_onkeydown_handler);
function win_onkeydown_handler() {
switch (event.keyCode) {
case 116 : // 'F5'
event.returnValue = false;
event.keyCode = 0;
break;
case 27: // 'Esc'
event.returnValue = false;
event.keyCode = 0;
break;
case 08: // 'BackSpace'
if (event.srcElement.tagName == "INPUT"
|| event.srcElement.tagName == "TEXTAREA") {
} else {
event.returnValue = false;
event.keyCode = 0;
}
break;
}
}
感谢所有人支持我这样做以及您的建议。
答案 2 :(得分:2)
我用它来登录弹出代码:
jQuery(document).keyup(function(e){
if(e.keyCode==27 && popupStatus==1){
// alert('not allowed !!!');
// or any other code
return false;
}
});
答案 3 :(得分:0)
我使用jquery做了类似的事情来限制数字输入
$(inputBox).keydown(function(event) {
// Allow only backspace and delete
var allowed_keys = [
46, // delete
8, // backspace
];
if ($.inArray(event.keyCode, allowed_keys) != -1) {
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if (event.keyCode < 48 || event.keyCode > 57 ) {
event.preventDefault();
}
}
});