2014-12-18 46 views
0

如何在輸入中按Tab鍵時防止change事件?防止選項卡上的更改事件keydown

我已經添加e.preventDefault()到​​事件處理

http://jsfiddle.net/949frs9j/1/

如果更改一個輸入,按選項卡,然後觸發change事件的價值...

<input id="tab1" type="text"> <input id="tab2" type="text"> 

$('input').keydown(function(e){ 
    if(e.which == 9){ 
     e.preventDefault(); 
     if(e.target.id == 'tab1'){ 
      $('#tab2').focus(); 
     } 
     else{ 
      $('#tab1').focus(); 
     } 
    } 
}).change(function(){ 
    console.log('change'); 
}); 

回答

2

您無法阻止從​​事件處理程序觸發change事件。 解決方法可能會暫時刪除change事件處理程序時選項卡按鈕並將焦點移到下一個輸入後再次重新綁定它。 Check this Fiddle

$('#tab1').off('change', myChangeHandler); 
    $('#tab2').focus(); 
    $('#tab1').on('change', myChangeHandler); 

另一種方法是使用flag變量來幫助change事件處理程序區分所造成的其他原因按Tab鍵change射擊。

0

更改事件正在觸發,因爲元素的值已更改...這就是它的用途。

如果我們知道你爲什麼試圖阻止更改事件觸發,這將有所幫助。

相關問題