2017-03-13 126 views
2

我打算用空格鍵觸發某些東西,但是當輸入焦點時應該防止觸發空格鍵。當輸入焦點時防止鍵盤輸入

我想用這種方式,但它不工作 有沒有什麼建議如何做到這一點。

$(document).ready(function(){ 
 
    $('input').on('blur', function(){ 
 
    $(document).on('keyup', function(e){ 
 
     if(e.keyCode == 32){ 
 
     alert("pressed!"); 
 
     } 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <label> Name</label> 
 
    <input type="text" /> 
 
    <br /> 
 
    <label>Pass</label> 
 
    <input type="text" /> 
 
</form>

+0

要澄清的問題是:你想禁用「與觸發事空格鍵「,而輸入焦點集中,當輸入失去焦點時,「再次觸發某事」? – Sami

+0

我的意思是,它可以隨時觸發,但是當輸入setfocus觸發器被禁用時 – rnDesto

回答

1

斷開與.off()處理程序,同時輸入具有焦點:

$(function(){ 
 
    $(document).on('keyup', function(e) { 
 
     if(e.keyCode == 32){ 
 
      alert("pressed!"); 
 
     } 
 
    }); 
 
    $('input').on('focus', function() { 
 
     $(document).off('keyup'); 
 
    }); 
 
    $('input').on('blur', function() { 
 
     $(document).on('keyup', function(e) { 
 
      if(e.keyCode == 32){ 
 
       alert("pressed!"); 
 
      } 
 
     }); 
 
    }); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <label> Name</label> 
 
    <input type="text" /> 
 
    <br /> 
 
    <label>Pass</label> 
 
    <input type="text" /> 
 
</form>

+0

我看到,我沒有注意到事件可以用.off()停止,它工作良好,謝謝你的建議。 – rnDesto

相關問題