Question

J'ai une application Web C # .NET MVC3 et je souhaite intercepter l'événement key up sur le document.À savoir, je veux savoir si l'utilisateur a sélectionné "CTL-> Z" pour annuler leurs modifications de données sur la vue Web.Comment puis-je faire cela?

Était-ce utile?

La solution

Je pense que c'est ce que vous recherchez:

var ctrlDown = false;
$(document).keydown(function (e) {
    if (e.which == 17)
        ctrlDown = true;
    if (e.which == 90)
        if (ctrlDown)
            console.log("control Z"); 
});
$(document).keyup(function (e) {
    if (e.which == 17)
        ctrlDown = false;
});

< EDIT

Je ne sais pas si e.ctrlKey de la réponse de mesiesta est compatible avec plusieurs navigateurs, mais si c'est le cas, vous pouvez faire plus simplement:

$(document).keydown(function (e) {
    if (e.which == 90 && e.ctrlKey)
        console.log("control Z");
});

Autres conseils

Vous pouvez essayer d'utiliser ce Ctrl + Key Combination – Simple Jquery Plugin.Je n'ai jamais essayé de l'utiliser, mais ça me semble une bonne solution pour ça)))

Voici le lien

http:// www.gmarwaha.com / blog / 2009/06/16 / combinaison-de-touches-ctrl-simple-jquery-plugin /

Voici donc ce code de fonction

$.ctrl = function(key, callback, args) {
$(document).keydown(function(e) {
    if(!args) args=[]; // IE barks when args is null
    if(e.keyCode == key.charCodeAt(0) && e.ctrlKey) {
        callback.apply(this, args);
        return false;
    }
});
};

Et puis dans votre code, vous devez écrire uniquement

$.ctrl('Z', function() {
    //What you want to do
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top