MDN Web 技术文档 - event.preventDefault

 

event.preventDefault

在本文章中

  1. 概述
  2. 语法
  3. 例子
  4. 备注
  5. 规范

概述

如果事件对象的cancelable属性为true,则该方法可以取消事件的默认动作.但并不取消事件的冒泡行为.

语法

event.preventDefault();

例子

点击一个复选框时,触发click事件.该事件的默认动作是切换复选框的选择状态.下例演示了如何取消这个默认动作的发生:

<!DOCTYPE html>
<html>
<head>
<title>preventDefault example</title>
</head>
<body>
<p>请点击下面的复选框.</p>
<form>
<input type="checkbox" id="my-checkbox" />
<label for="checkbox">Checkbox</label>
</form>
<script>
    function stopDefAction(evt) {
        alert("preventDefault会阻止该复选框被勾选.")
        evt.preventDefault();
    }

    document.getElementById('my-checkbox').addEventListener(
        'click', stopDefAction, false
    );
</script>
</body>
</html>

你可以在这里看到preventDefault方法的具体行为.

下例演示了如何使用preventDefault()方法来阻止一个input元素内非法字符的输入.

<!DOCTYPE html>
<html>
<head>
<title>preventDefault example</title>
</head>
<body>
<p>请输入一些字母,只允许小写字母.</p>
<form>
<input type="text" id="my-textbox"/>
</form>
<script type="text/javascript">
function checkName(evt) {
var charCode = evt.charCode;
  if (charCode != 0) {
    if (charCode < 97 || charCode > 122) {
      evt.preventDefault();
      alert("只能输入小写字母." + "\n"
            + "charCode: " + charCode + "\n"
      );
    }
  }
}
document.getElementById('my-textbox').addEventListener(
    'keypress', checkName, false
 );
</script>
</body>
</html>

备注

在事件触发后的任何阶段调用preventDefault方法来取消该事件,意味着该事件的所有默认动作都不会发生.

Gecko 6.0 note
(Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)

调用事件的preventDefault()方法后,会引起该事件的 event.defaultPrevented 属性值变为true.

你可以查看 event.cancelable 属性来判断一个事件的默认动作是否可以被取消. 在cancelable属性为false的事件上调用 preventDefault 方法没有任何效果.

preventDefault 方法不会阻止该事件的进一步冒泡. event.stopPropagation 方法才有这样的功能.

规范

DOM Level 2 Events: preventDefault

文档标签和贡献者

对本页有贡献的人: ziyunfei

最后编辑者: ziyunfei, May 15, 2014 10:19:17 PM

时间: 2024-09-13 05:01:37

MDN Web 技术文档 - event.preventDefault的相关文章

MDN Web 技术文档 - JavaScript Strict mode

MDN Web 技术文档 - JavaScript Strict mode 在 JavaScript 1.8.5 引入         ECMAScript 5的严格模式是Javascript中的一种限制性更强的变种方式.严格模式不是一个子集:它在语义上与正常代码有着特意的差异.不支持严格模式的浏览器与同支持严格模式的浏览器行为上也不一样, 所以不要在未经严格模式特性测试情况下使用严格模式.严格模式可以与非严格模式共存,所以脚本可以逐渐的选择性加入严格模式.         严格模式在语义上与正

MDN Web技术文档 - HTML 元素

MDN  Web技术文档  HTML  元素 元素   HTML元素 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  (快速链接 HTML Category) HTML元素 这个HTML引用列表所有HTML元素,定义在HTML5或在之前的规范.把尖括号放置在HTML元素的两边,就构成了HTML标签 : <elementname>.元素实体指定HTML文档如何应该建立,什么样的内容应该放置在一个HTML文档的哪些部分. 此页列出了所有的标

写有价值的技术文档

背景 传统瀑布开发模式下非常重视文档,每个开发环节的衔接都通过文档实现.这种重视在CMMI达到了极致,软件开发的每一步从形式到内容都要求文档化,需要设计者花费大量的精力在文档的撰写和维护上.高度文档化需要投入巨大的成本,这种成本在相对固定,变化较少的问题域(如传统的制造.管理)可以从软件后期的维护收益上得到补偿,实践中也得到了较好的效果.但在变化较多的问题域(如互联网.创业企业),高度文档化会造成整个软件生产过程的反应迟滞,进而造成企业竞争力的下降.于是这些要求快速反应,快速迭代的行业逐步放弃了

expression web 4文档乱码解决方法

expression web 4 文档乱码怎么解决,如下图 文档出现乱码的都是没有声明的页面,可以改变软件编码. 文档-属性 出现对话框,选语言选项-以如下编码方式重新加载文档,下拉菜单选择utf-8

中文技术文档的写作规范

很多人说,不知道怎么写文档,都是凭着感觉写. 网上也很少有资料,教你写文档.这已经影响了中文软件的发展. 英语世界里,文档非常受重视,许多公司和组织都有自己的文档规范,清楚地规定写作要求,比如微软.MailChimp.Apple.Yahoo.docker.Struts 等等(维基百科有一份完整的清单).中文的也有不少,但都不令人满意,要么太简单,要么不太适用. 我就动手,参考上面的规范,也结合自己的实践,总结了一份简单的<中文技术文档的写作规范>. 标题 文本 段落 数值 标点符号 章节结构

技术文档归档

这个文章用于保存某些技术文档,便于事后参考. [1]. 基于表格存储的高性能监控数据存储计算方案

java技术文档如何写(项目完成后)

问题描述 如题,之前没写过,现在不知道如何下手,请问写作的重点应该突出什么方面,是程序的设计,还是程序的使用,细节方面如何处理,要细化到每一个变量,方法嘛.请教高人!!! 解决方案 解决方案二:你要先确定你要写什么文档吧?需求分析,概要设计,详细设计,测试报告,用户手册等等,每一个侧重点都不相同啊解决方案三:这些文档基本都有规范,找找你们公司以前写的文档参考下解决方案四:各个公司的规范可能不一样,如果公司没有这样的规范,就参考别人的写一下咯.解决方案五:我也没写过,扯草草.zoubalon(这个

ChinaUnix.net技术文档手册中心_常用工具

(CU网友csfrank热心提供)" href="http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/index.html" target=_blank>Apache2.2中文手册(2006-10-20重要更新版)(CU网友csfrank热心提供) 构建和安装 Linux 包(CU网友bobkey翻译并热心提供) GTK+ Reference Manual(英文版) 备份工具Amanda官方文档 备份工具Bac

C#技术文档

问题描述 跪求C#技术文档.要全一点的,最好像JAVA那样可以快速打开的. 解决方案 解决方案二:"C#技术文档"."快速打开"?没明白不是有现成的MSDN吗?解决方案三:借贵宝地同求,文档.解决方案四:要的是CHM文件的吧,微软现在不给做这种的了,因为有MSDN在,所以也没有爱好者去做chm了解决方案五:MSDN怎么打开啊?解决方案六:MSDN也不好用啊,毛都找不到.SqlConnection都找不到.解决方案七:开始->程序->MicrosoftDe