为了账号安全,请及时绑定邮箱和手机立即绑定

使用JQuery捕获CTRL + S的最佳跨浏览器方法?

使用JQuery捕获CTRL + S的最佳跨浏览器方法?

哈士奇WWW 2019-10-05 13:46:13
我的用户希望能够点击Ctrl+ S保存表格。有没有一种跨浏览器的好方法来捕获Ctrl+ S组合键并提交我的表格?应用程序基于Drupal构建,因此可以使用jQuery。
查看完整描述

3 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

$(window).keypress(function(event) {

    if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true;

    alert("Ctrl-S pressed");

    event.preventDefault();

    return false;

});

各个浏览器的键码可能不同,因此您可能需要检查的字符不止115个。


查看完整回答
反对 回复 2019-10-05
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

这适用于我(使用jquery)重载Ctrl+ S,Ctrl+ F和Ctrl+ G:


$(window).bind('keydown', function(event) {

    if (event.ctrlKey || event.metaKey) {

        switch (String.fromCharCode(event.which).toLowerCase()) {

        case 's':

            event.preventDefault();

            alert('ctrl-s');

            break;

        case 'f':

            event.preventDefault();

            alert('ctrl-f');

            break;

        case 'g':

            event.preventDefault();

            alert('ctrl-g');

            break;

        }

    }

});


查看完整回答
反对 回复 2019-10-05
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

这个jQuery解决方案适用于Chrome和Firefox,适用于Ctrl+ S和Cmd+ S。


$(document).keydown(function(e) {


    var key = undefined;

    var possible = [ e.key, e.keyIdentifier, e.keyCode, e.which ];


    while (key === undefined && possible.length > 0)

    {

        key = possible.pop();

    }


    if (key && (key == '115' || key == '83' ) && (e.ctrlKey || e.metaKey) && !(e.altKey))

    {

        e.preventDefault();

        alert("Ctrl-s pressed");

        return false;

    }

    return true;

}); 


查看完整回答
反对 回复 2019-10-05
  • 3 回答
  • 0 关注
  • 879 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信