HTMLElement:取消事件
cancel 事件由 <input> 和 <dialog> 元素觸發。當用戶使用 Esc 鍵關閉當前開啟的對話方塊以取消對話方塊時,會觸發此事件。當用戶透過 Esc 鍵或取消按鈕取消檔案選擇器對話方塊,以及當用戶重新選擇之前已選擇的相同檔案時,檔案輸入 也會觸發此事件。
此事件不會冒泡。
當使用 Esc 鍵關閉 <dialog> 時,會同時觸發 cancel 和 close 事件。
語法
在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。
js
addEventListener("cancel", (event) => {});
oncancel = (event) => {};
事件型別
一個通用的 Event。
示例
取消對話方塊
HTML
html
<dialog class="example-dialog">
<button class="close" type="reset">Close</button>
</dialog>
<button class="open-dialog">Open dialog</button>
<div class="result"></div>
JavaScript
js
const result = document.querySelector(".result");
const dialog = document.querySelector(".example-dialog");
dialog.addEventListener("cancel", (event) => {
result.textContent = "dialog was canceled";
});
const openDialog = document.querySelector(".open-dialog");
openDialog.addEventListener("click", () => {
if (typeof dialog.showModal === "function") {
dialog.showModal();
result.textContent = "";
} else {
result.textContent = "The dialog API is not supported by this browser";
}
});
const closeButton = document.querySelector(".close");
closeButton.addEventListener("click", () => {
dialog.close();
});
結果
取消輸入元素
HTML
html
<label for="file">Select or 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.";
}
});
結果
開啟檔案選擇器,然後使用 Esc 鍵或取消按鈕關閉選擇對話方塊。這兩種操作都會導致觸發 cancel 事件。此外,嘗試選擇計算機上的本地檔案;然後重新開啟檔案選擇視窗並重新選擇相同的檔案。這也會導致觸發 cancel 事件。
規範
未找到規範
未找到 api.HTMLElement.cancel_event 的規範資料。
檢查此頁面是否存在問題 或為缺少的 spec_url 貢獻程式碼到 mdn/browser-compat-data。同時確保規範包含在 w3c/browser-specs.
瀏覽器相容性
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。