在文本框输入时JS取消空格键 [英] js deactivate spacebar when typing in textfield

查看:150
本文介绍了在文本框输入时JS取消空格键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建它使用空格键暂停和播放音频音乐播放器,现在有可能知道是否有人正在键入一个文本框,因为现在,如果在一个文本框和音频这一用户类型是玩,当用户presses空间音频停顿,我想基本上,当用户不在一个文本框,用户可以直接播放和暂停音频,但是当用户键入该功能被禁止,因此声音不断播放。在code以下,是code,我感到目前使用时,空间pressed检测;

  //如果空格键为pressed
$(窗口).KEY preSS(函数(五){
如果(e.key code == 32){
    如果(的document.getElementById('声音')。暂停){
        如果(的document.getElementById('视频')。的style.display ==块){        }
        其他{
            。的document.getElementById('声音')播放();
            。的document.getElementById(暂停)的style.display =块;
            。的document.getElementById('玩')的style.display =无;
        }
    }
    其他{
        如果(的document.getElementById('视频')。的style.display ==块){        }
        其他{
            。的document.getElementById('声音')暂停();
            。的document.getElementById(暂停)的style.display =无;
            的document.getElementById('玩')的style.display =块。
        }
    }
}
});
// END IF空格键为pressed


解决方案

检查事件源标签名属性:

 功能(E){
 Ë= E ||事件;
 VAR EL = e.srcElement || e.target,
     !剑度=(/ textarea的|输入/ i.test(el.tagName)); 如果(剑度和放大器;&安培; e.key code == 32){
   /等等。
 }
}

I am creating a music player which uses the spacebar to pause and play audio, now is it possible to know if someone is currently typing in a textfield, because right now, if this user types in a textfield and audio is playing, when the user presses space the audio pauses, I would like basically that when the user is not in a textfield that a user can just play and pause audio, but when the user is typing that this function is disabled so the audio keeps playing. The code below, is the code I'm am current using for detecting when space is pressed;

//IF Space bar is Pressed
$(window).keypress(function(e) {
if(e.keyCode == 32) {
    if(document.getElementById('audio').paused){
        if(document.getElementById('video').style.display=="block"){

        }
        else{
            document.getElementById('audio').play();
            document.getElementById('pause').style.display="block"; 
            document.getElementById('play').style.display="none";
        }
    }
    else{
        if(document.getElementById('video').style.display=="block"){

        }
        else{
            document.getElementById('audio').pause();
            document.getElementById('pause').style.display="none";
            document.getElementById('play').style.display="block";
        }
    }
}
});
//END IF Space bar is pressed

解决方案

Check the event sources tagName attribute:

function(e) {
 e = e || event;
 var el = e.srcElement || e.target,
     cando = !(/textarea|input/i.test(el.tagName));

 if(cando && e.keyCode == 32)  {
   /etc.
 }
}

这篇关于在文本框输入时JS取消空格键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆