如果任何输入处于焦点上,则不执行功能

时间:2018-03-07 09:55:11

标签: javascript jquery focus onfocus

如果页面的任何输入都在焦点上,我正在寻找一种不执行函数(e)的方法。 我尝试了几种不成功的方式;(

这是我的代码:

document.onkeyup=function(e){

  var e = e || window.event;//Pour IE   

  // Action sur la barre d'espace (32)
  if(e.which == 32) {
    $("#play").click(); 
    return false;
  }

   //Action sur entrée (13)
  if(e.which == 13) {
    $("#play").click(); 
    return false;
  }

}

我尝试了类似的东西

if ($('input').is(":focus")) {
}
else{ my code }

但它不起作用。

感谢您帮助我!

艾蒂安

2 个答案:

答案 0 :(得分:1)

javascript中的onfocus事件

<!DOCTYPE html>
<html>
<body>

Enter your name: <input type="text" onfocus="myFunction(this)">

<p>When the input field gets focus, a function is triggered which changes the background-color.</p>

<script>
function myFunction(x) {
    x.style.background = "yellow";
}
</script>

</body>
</html>

答案 1 :(得分:0)

由于我的问题重新制定,我找到了解决方案,已经在另一个stackoverflow线程中询问了它:Check to see if any Input elements are in focus

所以,在这里适应我的代码是:

  document.onkeyup=function(e){

  var e = e || window.event;//Pour IE  

  if ( $('input:focus').length > 0 ) {}
  else{     // if an input is not focused, the function is executed

      // Space bar action (32)
      if(e.which == 32) {
        $("#play").click(); 
        return false;
      } 
       //Enter key action (13)
      if(e.which == 13) {
        $("#play").click(); 
        return false;
      }
    }
 }