Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止在密码字段中触发按键事件_Javascript_Keypress_Event Listener - Fatal编程技术网

Javascript 防止在密码字段中触发按键事件

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

我正在编写一个脚本来捕获给定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");
    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。下面的答案应该有用!似乎不必要的复杂,下面给出的答案应该很有用!