2015-10-05 57 views
1

Qhen你在鍵盤上按enter,表格自動發送。 我希望不是這種情況下,只有當一個特定領域(#myText') has focus when you press enter`jQuery:只有當字段有焦點時禁用'回車'

感謝this,我現在有這個代碼:

$('#myText').on('focusin', function() { 
    console.log('focusin'); 

    $(window).keydown(function(event){ 
     if(event.keyCode == 13) { 
      console.log('enter!'); 
      event.preventDefault(); 
      return false; 
     } 
    }); 
}); 

但它不能很好地工作,因爲當現場失去焦點,按enter沒有任何反應

我在哪裏錯了

回答

3

你是不是你的keydown事件綁定到特定的輸入更改此行:?

$(window).keydown(function(event){ 

這樣:

$(this).off('keydown').keydown(function(event){ 

JSFiddle demo

+1

每次輸入會將myText#得到焦點的一個新的事件處理程序將獲得創建。改變你的代碼:'$(this).off('keydown')。keydown(function(event){' – Taleeb

+0

更正了我的答案。 –

+0

謝謝@devlin carnate,它的工作原理! –

相關問題