Запрет событий нажатия клавиш в полях паролей - PullRequest
0 голосов
/ 23 января 2019

Я работаю над сценарием для захвата всех нажатий клавиш на заданной 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));
}

Теперь я хочу запретить запуск этой функции в случае, если событие сработало в поле пароля.

Несмотря на то, что событие происходит, как мне определить, что element - это поле input, а type - это password.

Я предполагаю, что это должно быть сделано, используя event.target.

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Вы также можете проверить тип входа с помощью 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));
  }
}
0 голосов
/ 23 января 2019
<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));
    }
 }

Это должно решить вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...