在表单提交之前了解焦点元素 id

问题描述 投票:0回答:1

我想在 ajax 检查后将焦点返回到 html 元素(触发表单的提交)。因为我的表单总是被提交,最后一个焦点元素始终是提交按钮。

我怎样才能知道之前获得焦点的元素(请用纯JS)?

提前致谢

javascript ajax focus form-submit
1个回答
1
投票

要在 AJAX 检查后将焦点返回到触发表单提交的 HTML 元素,您可以使用 JavaScript 中的

focus()
方法。您可以在 AJAX 调用之前将先前具有焦点的元素存储在变量中,然后在 AJAX 调用之后使用它将焦点设置回该元素。

示例:

// Store the previously focused element
let previousElement = document.activeElement;

// Perform AJAX call
$.ajax({
  url: "your-url",
  success: function() {
    // Set focus back to the previously focused element
    previousElement.focus();
  }
});

要在纯 JavaScript 中获取先前聚焦的元素,可以使用

document.activeElement
属性。此属性返回文档中当前聚焦的元素。您可以在 AJAX 调用之前将此值存储在变量中,然后在 AJAX 调用之后使用它将焦点设置回该元素。

// Store the previously focused element
let previousElement = document.activeElement;

// Perform AJAX call
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4 && xhr.status === 200) {
    // Set focus back to the previously focused element
    previousElement.focus();
  }
};
xhr.open("GET", "your-url", true);
xhr.send();
© www.soinside.com 2019 - 2024. All rights reserved.