6
votes

E.Quelle clé Entrée n'est activée que si la mise au point sur le champ de saisie

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


0 commentaires

5 Réponses :


0
votes

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.


0 commentaires

10
votes

Je vais joindre l'auditeur d'événement à cet élément d'entrée spécifique: xxx


1 commentaires

Je suis d'accord mais suggérerait d'utiliser l'événement keypress plutôt que l'événement , car il ira plus tôt et contient des codes de caractères fiables pour des caractères imprimables dans tous les navigateurs traditionnels.



1
votes

Ajoutez simplement cette ligne à votre fonction à l'intérieur de votre deuxième si fort> Déclaration:

$('#search_text').focus(function()


0 commentaires

-1
votes

Vous devez également ajouter: e.preventDefault () ; xxx


1 commentaires

Appelant jQuery donnant la chaîne 'document' ne joint pas à l'événement à l'élément de document. Vous devez utiliser $ (document) à la place, sans citations. De plus, lorsque vous appelez PRENVENDEFAULT () Tous les événements "par défaut" ultérieurs ne seront plus déclenchés.



0
votes

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


0 commentaires