Javascript 防止在密码字段中触发按键事件
我正在编写一个脚本来捕获给定HTML页面中的所有按键 现在我有一个基本的工作脚本Javascript 防止在密码字段中触发按键事件,javascript,keypress,event-listener,Javascript,Keypress,Event Listener,我正在编写一个脚本来捕获给定HTML页面中的所有按键 现在我有一个基本的工作脚本 document.onkeypress = function(event){ var evtobj=window.event? event : e; if (evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey) console.log("'Alt', 'Ctrl', or 'Shift' key pressed"); cons
document.onkeypress = function(event){
var evtobj=window.event? event : e;
if (evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey)
console.log("'Alt', 'Ctrl', or 'Shift' key pressed");
console.log(String.fromCharCode(evtobj.keyCode));
}
现在,我想防止在密码字段上触发事件时触发此函数
即使事件触发,我如何继续识别元素
是一个输入
框,类型
是密码
我猜应该使用event.target
<input type='password' name='password'/>
document.onkeypress = function(event){
var containerName = event.target.name;
if (containerName !== 'password')
{
var evtobj=window.event? event : e;
if (evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey)
console.log("'Alt', 'Ctrl', or 'Shift' key pressed");
console.log(String.fromCharCode(evtobj.keyCode));
}
}
document.onkeypress=函数(事件){
var containerName=event.target.name;
if(containerName!=“密码”)
{
var evtobj=window.event?事件:e;
if(evtobj.altKey | | evtobj.ctrlKey | | evtobj.shiftKey)
log(“'Alt'、'Ctrl'或'Shift'键按下”);
log(String.fromCharCode(evtobj.keyCode));
}
}
这将解决您的问题
document.onkeypress=函数(事件){
var containerName=event.target.name;
if(containerName!=“密码”)
{
var evtobj=window.event?事件:e;
if(evtobj.altKey | | evtobj.ctrlKey | | evtobj.shiftKey)
log(“'Alt'、'Ctrl'或'Shift'键按下”);
log(String.fromCharCode(evtobj.keyCode));
}
}
这应该可以解决您的问题您也可以通过使用
event.target.type检查输入的类型来完成。这将返回输入的类型
<input type="password">
document.onkeypress = function(event){
if(event.target.type != 'password'){
var evtobj=window.event? event : e;
if (evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey)
console.log("'Alt', 'Ctrl', or 'Shift' key pressed");
console.log(String.fromCharCode(evtobj.keyCode));
}
}
document.onkeypress=函数(事件){
if(event.target.type!=“密码”){
var evtobj=window.event?事件:e;
if(evtobj.altKey | | evtobj.ctrlKey | | evtobj.shiftKey)
log(“'Alt'、'Ctrl'或'Shift'键按下”);
log(String.fromCharCode(evtobj.keyCode));
}
}
您也可以通过使用event.target.type
检查输入的类型来执行此操作,这将返回输入的类型
<input type="password">
document.onkeypress = function(event){
if(event.target.type != 'password'){
var evtobj=window.event? event : e;
if (evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey)
console.log("'Alt', 'Ctrl', or 'Shift' key pressed");
console.log(String.fromCharCode(evtobj.keyCode));
}
}
document.onkeypress=函数(事件){
if(event.target.type!=“密码”){
var evtobj=window.event?事件:e;
if(evtobj.altKey | | evtobj.ctrlKey | | evtobj.shiftKey)
log(“'Alt'、'Ctrl'或'Shift'键按下”);
log(String.fromCharCode(evtobj.keyCode));
}
}
当密码字段为焦点时,您可以启动包含event.preventDefault()的函数;一旦它失去焦点,就会触发onkeypress事件侦听器。此外,event.preventDefault仅适用于Firefox、Safari和Chrome。下面的答案应该有用!似乎不必要的复杂,下面给出的答案应该很有用!您可以做的是,当密码字段为focus时,启动一个包含event.preventDefault()的函数;一旦它失去焦点,就会触发onkeypress事件侦听器。此外,event.preventDefault仅适用于Firefox、Safari和Chrome。下面的答案应该有用!似乎不必要的复杂,下面给出的答案应该很有用!