javascript - Hvordan fange Tab-tasttrykkhendelsen i en tekstboks ved å bruke jQuery


Jeg vil fange Tab-tastetrykkhendelsen ved hjelp av jQuery, avbryte standardhandlingen og kalle min egen JavaScript-funksjon. Hvordan kan jeg gjøre dette?

Svar #1

Siden du nevnte i en kommentar at elementet ditt blir satt inn dynamisk, må du bruke delegert on() som i eksemplet ditt, men du bør binde det til keydown-hendelsen, fordi som Marc kommenterer, i Internet Explorer fanger ikke keypress-hendelsen opp taster som ikke er tegn:

$("#parentOfTextbox").on('keydown', '#textbox', function(e) { 
  var keyCode = e.keyCode || e.which; 
 
  if (keyCode == 9) { 
    e.preventDefault(); 
    // call custom function here
  } 
});

Se et fungerende eksempel i denne JSBin-demonstrasjonen.

Svar #2

Fungerende eksempel i jQuery 1.9:

$('body').on('keydown', '#textbox', function(e) {
    if (e.which == 9) {
        e.preventDefault();
        // do your code
    }
});

Svar #3

$('#textbox').live('keypress', function(e) {
    if (e.keyCode === 9) {
        e.preventDefault();
        // do work
    }
});

Relaterte artikler