欢迎访问永胜空间,好运加身,财源广进不是梦

自己写个用于在数据验证错误时定位到错误对象的方法nodeToFocus

  • 工作心得 @ 2024-10-19
  • 作者:顾永胜
  • 来源:0513.city
/**
 * @param {string|HTMLElement} checker DOM对象或对象名ID字符串
 *如果对象是INPUT则获得焦点,并滚动到当前位置
 *如果不是INPUT对象,则只滚动到当前位置
 */
export const nodeToFocus = (checker=> {
  //检查是否是DOM对象,如果不是则转换成DOM对象
  if (!(checker instanceof HTMLElement)) {
    checker = document.getElementById(checker);
  }
  if (checker) {
    var rect = checker.getBoundingClientRect();
    ////如果是input对象,延迟300ms获得焦点,如果不延迟可能无法正常获得焦点
    if (checker.nodeName.toLowerCase() === "input") {
      setTimeout(() => {
        checker.focus();
      }, 300);
    }
    //移动滚动条到对象位置
    window.scrollTo({ left: rect.lefttop: rect.topbehavior: "smooth" });
  }
};
/**
 * End nodeToFocus
 */