You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React点击按钮添加输入框后,如何自动聚焦最新输入框并设红边框?

解决输入框新增后自动聚焦的问题

核心思路很直接:在新增输入框的逻辑完成后,主动调用输入框元素的focus()方法,就能让最后添加的输入框自动获取焦点,同时你已实现的:focus-within CSS效果也会正常触发。

原生JS场景示例

假设你的输入框都放在类名为input-container的容器里,按钮点击事件可以这么写:

document.querySelector('#add-input-btn').addEventListener('click', () => {
  const container = document.querySelector('.input-container');
  // 创建新输入框并设置属性
  const newInput = document.createElement('input');
  newInput.type = 'text';
  // 将新输入框插入DOM
  container.appendChild(newInput);
  // 关键步骤:让新输入框获取焦点
  newInput.focus();
});

框架场景补充(以React为例)

如果用React开发,需要借助useRef获取DOM引用,确保在DOM更新后执行聚焦操作:

import { useRef } from 'react';

function InputList() {
  const containerRef = useRef(null);

  const handleAddInput = () => {
    const newInput = document.createElement('input');
    newInput.type = 'text';
    containerRef.current.appendChild(newInput);
    newInput.focus();
  };

  return (
    <div>
      <div ref={containerRef} className="input-container"></div>
      <button onClick={handleAddInput}>新增输入框</button>
    </div>
  );
}

关键说明

:focus-within是监听容器内元素的聚焦状态,但浏览器不会自动给新增的DOM元素分配焦点,必须通过代码主动调用focus()方法,才能激活聚焦状态,进而触发:focus-within的样式效果。

内容的提问来源于stack exchange,提问作者xowiya10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:35:13