javascript - 如何在 React 中提交表单后删除对输入的关注

标签 javascript reactjs styled-components

我正在使用 React Hook 和样式化组件方法在 React 中制作一个注册表单组件。我能够制作组件,但提交后,在 mozilla(开发人员版)中,所有输入字段都设置了轮廓。这在 chrome 中不是这样......

下面是组件样式:

const Input = styled.input`
  outline: none;
  padding: 5px;
  margin-bottom: 10px;
  border-radius: 3px;
  border: none;
  line-height: 1.5rem;
  background-color: #F2F2F2;
  &::placeholder {
    opacity: 0.4;
  }

  &:focus,
  &:active {
  border-color: transparent;
  border-bottom: 2px solid #a3a3a3;
}
`;

如何解决这个问题?这是它在上述浏览器中的样子:

enter image description here

最佳答案

尝试使用条件 css className,在提交表单后从输入中删除焦点 className。

样式化组件 CSS:&.hasFocus:focus

输入属性:< Input className={!isSubmitted ? ‘有焦点’:{}}/>

初始状态:const [isSubmitted, setIsSubmitted] = React.useState(false);

onSubmit() { ...其他代码... setIsSubmitted(true) }

希望这对您有所帮助!

关于javascript - 如何在 React 中提交表单后删除对输入的关注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58594545/

相关文章:

javascript - 样式化组件 onClick 旋转元素

css - 等待 CSS 在 nextjs 静态站点上加载?

javascript - 防止默认事件操作不起作用...?

javascript - 需要帮助水平制作子菜单并且子链接的边框不会超出 ul

css - 如何覆盖 react 引导颜色?

javascript - 如何使用 React 单击文档中的任意位置关闭侧面板?

javascript - 样式组件中的响应式数组

Javascript - 动态创建按钮

javascript - 确保在评估之前运行 javascript 中链式比较器中的所有方法?

node.js - React 编译没有错误,但浏览器上没有显示任何组件