reactjs - 将光标重置到 <textarea> React 的开头

标签 reactjs input textarea blur onblur

我有一个要创建的 react 文本区域,并且我希望光标在失去焦点时从头开始。我该如何解决这个问题?

代码沙盒:https://codesandbox.io/s/affectionate-tu-2cd6j6?file=/src/App.js

``

export default function App() {
  const textareaRef = useRef();
  return (
    <div>
      <textarea
        ref={textareaRef}
        id="my-text-area"
        defaultValue={"Hello World!"}
        rows="2"
        tabIndex="-1"
        style={{ resize: "none", overflow: "hidden" }}
        onBlur={() => textareaRef.current.setSelectionRange(0, 0)}
      ></textarea>
    </div>
  );
}

尝试将 onblur 函数与 setSelectionRange 一起使用,但由于某种原因不起作用。

最佳答案

对您的代码进行了一些操作,似乎您在更改选择范围后缺少focus()调用。

onBlur={() => {
  textareaRef.current.setSelectionRange(0, 0);
  textareaRef.current.focus();
}}

然后,光标将出现在文本区域内容的开头。

https://codesandbox.io/s/suspicious-tdd-r8t77j?file=/src/App.js

关于reactjs - 将光标重置到 &lt;textarea&gt; React 的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74503646/

相关文章:

ruby - 从textarea读取文本,用ruby修改文本,并输出修改后的文本

html - 移除 <INPUT> 上的黑色 LEFT 和 TOP

javascript - React Context 和单独的类

c- 获取输入后的奇怪行为

c++ - 如何将 "A1"样式的行+列规范作为输入?

jquery - jQuery UI 对话框中的文本区域高度/宽度

javascript - 将项目导入 React 后不再播放声音

reactjs - 功能组件不会在 Prop 更改时重新渲染

reactjs - 将位置传递给 BrowserRouter 的子级 - React Router

jQuery这个表单输入