2017-10-11 96 views
2

我目前正試圖集中下一個輸入類型,當用戶按下輸入通過使用Jquery。但是,由於某種原因它沒有檢測到按鍵。Jquery:在輸入焦點的下一個輸入

輸入類型位於名爲mGrid的css類中。

function addFocusSupport() { 
    $(".mGrid").find('input').each(function (index, element) { 
     // Here we get all the TextFields 
     alert($(this)); 
     $(this).on("keypress", 
      function (e) { 
       if (e.KeyCode() === 13) { 
        // Focus next textfield 
        alert("Enter Pressed"); 
        var nextElement = $('[index="' + (this.Index + 1) + '"]'); 
        nextElement.focus(); 
        alert(nextElement); 
        e.preventDefault(); 
       } 
       // TODO: For last TextField, do nothing 
      }); 
    }); 
} 

所以我試圖做的事: 用戶在第一輸入填充,按回車鍵自動選擇下一個文本框。將其視爲按下的標籤。

但是if (e.KeyCode() === 13) {之後的事件從未被觸發?

+0

它'e.keyCode'帶有負ķ – sheplu

+0

'keyCode'不是function.so使用'e.keyCode' – prasanth

回答

2

變化:

if (e.KeyCode() === 13) {

要:

if (e.which === 13) {


KeyCode()是無法得到的鍵碼的正確方法。您正在考慮event.keyCode,這已棄用。如果您使用的是jQuery,則event.which已規範化以適用於所有瀏覽器。沒有jQuery的,請務必檢查所有情況:

var key = event.which || event.charCode || event.keyCode


關注下輸入元素,這樣做:

$(this).next('input').focus();

+0

感謝。這會觸發警報。所以事件被按下了。現在我只需要調試它爲什麼不把重點放在下一個txtbox –

+0

@Катерина很好聽。我已經更新了關於下一個文本框的重點。 – hermbit

+0

我已將它切換到事件,雖然重點不適合我 –

1

您可以使用下面的代碼

$(function() { 
    $(".mGrid >input").off('keyup').on('keyup', function(e) { 
    if (e.which === 13) { 
     $(this).next('input').focus(); 
    } 
    }); 
}); 

這裏有一個工作Jsfiddle demo

希望這將幫助你

+0

非常感謝。我發現代碼中的某處出現了其他問題,因爲小提琴正常工作! –