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
}
});
