受控的反应输入正在破坏 chrome 中的 maxLength 属性

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

我已经建立了一个文本字段,它使用 react 将提供的输入转换为大写字母,它接受 5 个字符的 maxLength。

问题: 当我尝试执行撤消和重做操作时,文本字段允许的字符数超过 maxLength HTML 属性中指定的字符数。

重现步骤:

  1. 转到链接:https://codesandbox.io/s/textfield-uppercase-material-ui-forked-95ww4t?file=/src/App.js
  2. 它有一个文本输入,可以将给定的文本转换为大写,并且还允许最多 5 个字符
  3. 键入“abcdef”。由于最大长度限制,您可以在文本字段中看到“ABCDE”
  4. 按“ctrl+z”5次
  5. 按“ctrl+y”重做
  6. 现在您可以在文本框“ABCDEAA”中看到 7 个字符,根据 maxLength 规范,这是不允许的。

我在 chrome 和 edge 浏览器(基于 Chromium 的浏览器)中遇到了这个问题,但在 firefox 中没有。我在这里做错了什么还是需要由 Chrome 或 React 修复的问题。

reactjs google-chrome microsoft-edge chromium
© www.soinside.com 2019 - 2024. All rights reserved.