HTMLInputElement:cancel 事件

Baseline 2023
新推出

自 ⁨2023 年 5 月⁩起,此功能可在最新的设备和浏览器版本上使用。此功能可能无法在旧版设备或浏览器上使用。

当用户通过 Esc 键或取消按钮取消文件选择器对话框,或者当用户重新选择已选中的 type="file" 的同一批文件时,会 <input> 元素上触发 cancel 事件。

此事件不可取消,但可以冒泡。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("cancel", (event) => { })

oncancel = (event) => { }

事件类型

一个通用的 Event

示例

取消输入元素

HTML

html
<label for="file">Select a file. Or don't.</label>
<input type="file" id="file" name="file" />

<div id="result"></div>

JavaScript

js
const elem = document.getElementById("file");

const result = document.getElementById("result");

elem.addEventListener("cancel", () => {
  result.textContent = "Canceled.";
});

elem.addEventListener("change", () => {
  if (elem.files.length === 1) {
    result.textContent = "File Selected.";
  }
});

结果

打开文件选择器,然后按 Escape 键或点击取消按钮关闭选择对话框。这两种操作都会导致 cancel 事件被触发。此外,尝试选择本地文件;然后重新打开文件选择窗口并重新选择同一个文件。这也将导致 cancel 事件被触发。

规范

规范
HTML
# event-cancel
HTML
# handler-oncancel

浏览器兼容性

另见