J'utilise un E.Quelle de JQuery pour avoir exécuté une fonction sur la presse d'entrer, mais je souhaite que cette fonction soit appelée uniquement si le champ d'entrée en question est focalisé (où le curseur clignote).
Mon actuel Fonction JQuery. P>
$(document).keyup(function(e) {
if (e.which == 13) {
var page = $("#userpage").val();
if(page > 0) {
$("#search").click();
} else {
$('.save').click();
}
}
});
5 Réponses :
Lier l'événement pour l'élément #Search_text, au lieu de tout le document. De cette façon, cela ne sera déclenché que lorsque l'élément a le focus. P>
Je vais joindre l'auditeur d'événement à cet élément d'entrée spécifique:
Je suis d'accord mais suggérerait d'utiliser l'événement keypress code> plutôt que l'événement code> code>, car il ira plus tôt et contient des codes de caractères fiables pour des caractères imprimables dans tous les navigateurs traditionnels.
Ajoutez simplement cette ligne à votre fonction à l'intérieur de votre deuxième si fort> Déclaration: $('#search_text').focus(function()
Vous devez également ajouter: e.preventDefault () code>;
Appelant jQuery donnant la chaîne 'document' code> ne joint pas à l'événement à l'élément de document. Vous devez utiliser $ (document) code> à la place, sans citations. De plus, lorsque vous appelez PRENVENDEFAULT () CODE> Tous les événements "par défaut" ultérieurs ne seront plus déclenchés.
Lorsque nous appliquons la liaison à $ (document) code>, la liaison se produit lorsque le document a focus code>. Nous pouvons utiliser la même chose ici. En utilisant $ (# texte de recherche) code> dans la clé Keybind, nous le faisons afin que le clavier ne soit déclenché que lorsque # recherche-texte code> est ciblé. $(#search-text).keyup(function(e) {
if (e.which == 13) {
var page = $("#userpage").val();
if(page > 0) {
$("#search").click();
} else {
$('.save').click();
}
}
});