牛腩新闻发布系统—如何屏蔽Enter键

问题的由来

  因为有些浏览器之间各不相同,这也就是前端页面需要兼容各个浏览器的原因。有些浏览器对回车键的设定是,当我们按下回车键时,浏览器会默认把当前页面的表单提交。但是有时候我们并不想这样做,如下图:
在这里插入图片描述
比如,我们按下回车之后只想更改类别名称,如果我们不屏蔽回车键的话,更改完类别名称之后,它还会再执行搜索,然后跳转到另一个界面。这时我们就需要屏蔽回车键了。

为什么会这样?

  但是为什么会出现这种情况呢?因为我们是利用 js 事件完成的,但是 js 中的事件触发是一种冒泡型的。什么是冒泡型呢?比如我们当前执行的是输入框中的回车事件,冒泡型的意思就是当我们执行完输入框的回车事件之后,它还会再次执行父元素的回车事件。所以就会出现,更改完类别名称之后再跳转到搜索结果界面。
  下面我们来举一个例子:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript">
        function add(sText) {
            var oDiv = document.getElementById("display");
            oDiv.innerHTML += sText;
        }
    </script>
</head>
<body onclick="add('body 的onclick事件触发了<br>');">
    <div onclick="add('div 的onclick事件触发了<br>');">
        <p onclick="add('p 的onclick事件触发了<br>')">Click Me</p>
    </div>
    <div id="display"></div>
</body>
</html>

  看一下执行结果:
在这里插入图片描述

如何屏蔽

  屏蔽按键的话很简单,只需要在 js 中加上一段代码就好了。

//屏蔽Enter按键
$(document).keydown(function (event) {
    switch (event.keyCode) {
        case 13: return false;
    }
});

  加上这段代码,就会把父元素中的回车事件屏蔽掉。如果加上这段代码之后,没有效果,那就查看一下网页的源文件,看一下 button 是什么类型的。
在这里插入图片描述
  比如这个按钮的类型就是 submit 的,如果按钮的类型是 image或者submit 的话,就需要我们把它改成普通的按钮类型。
在这里插入图片描述
  如上图:把按钮的 UseSubmitBehavior 属性改为 false 就好了。它的 type 就会变成 button。

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值