Jquery keypress event pour cmd + s AND ctrl + s

En utilisant l'un des exemples d'une question précédente, j'ai:

$(window).keypress(function(event) { if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true; $("form input[name=save]").click(); event.preventDefault(); return false; }); 

Est-il également possible de changer cela pour fonctionner pour la clé cmd de Mac?

J'ai essayé (!(event.which == 115 && (event.cmdKey || event.ctrlKey)) && !(event.which == 19)) mais cela n'a pas fonctionné.

Utilisez l' événement.metaKey pour détecter la touche de commande

 $(document).keypress(function(event) { if (event.which == 115 && (event.ctrlKey||event.metaKey)|| (event.which == 19)) { event.preventDefault(); // do stuff return false; } return true; }); 

Pour détecter ctrl+s et cmd+s , vous pouvez utiliser de cette façon:

Travaillant jsFiddle.

JQuery:

 var isCtrl = false; $(document).keyup(function (e) { if(e.which == 17) isCtrl=false; }).keydown(function (e) { if(e.which == 17) isCtrl=true; if(e.which == 83 && isCtrl == true) { alert('you pressed ctrl+s'); return false; } }); 

Source (inclut tous les shorcuts et boutons de clavier)

Cela fonctionne pour moi:

 $(document).keypress(function(event) { if ((event.which == 115 || event.which == 83) && (event.ctrlKey||event.metaKey)|| (event.which == 19)) { event.preventDefault(); // do stuff return false; } return true; });