整个网页的默认按钮,用于响应按ENTER键

时间:2014-06-03 10:54:06

标签: javascript

是否可以为整个网页设置按ENTER键的默认按钮?

我用Google搜索,我遇到了以下代码。但是我不确定这一行是什么意思var keycode = (event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode));所以我想在stackoverflow上发布这个问题。

感谢。

<script language="javascript">
    $(document).ready(function () {
        $("input").bind("keydown", function (event) {
            var keycode = (event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode));
            if (keycode == 13) {
                document.getElementById('btn').click();
                return false;
            } else {
                return true;
            }
        });
    });
</script>

2 个答案:

答案 0 :(得分:1)

不同的浏览器/设备 1 支持获取密钥代码的不同属性。三元表达式与:

相同
var keyCode;

if(event.keyCode) // if keyCode is supported get that #top-priority
    keyCode = event.keyCode;

else if(event.which) // else, if .which is supported, get that
    keyCode = event.which;

else                 // alas! nothing above is supported
    keyCode = event.charCode; // we should take charCode

1设备例如EAN条形码阅读器有一个charCode of 13由于其.keyCode为0(假),因此第一个if条件失败。 Courtesy - MLeFevre

答案 1 :(得分:0)

使用JQuery(如果有选项)我会做

$(document).keyup(function(evt) {
        if (evt.keyCode == 13) {
            // do your thing 
        }

}

这适用于Chrome,FF,Safari和Opera。 还可以考虑使用各种检查,如@Gaurang Tandon的答案,以涵盖所有硬件规格。