【问题标题】:input allows to write 1 symbol only输入只允许写入 1 个符号
【发布时间】:2020-05-12 12:43:24
【问题描述】:

页面上有单选按钮。 单击单选按钮时 - 应该显示或隐藏一些元素。

但选择“搜索”时 - 它允许仅编写1个符号并变得不可见。

请看这里的代码示例:https://codesandbox.io/embed/keen-hodgkin-4f4jy?fontsize=14&hidenavigation=1&theme=dark

【问题讨论】:

  • 欢迎来到 SO。您能否添加您的实际问题?您遇到的错误是什么?您究竟在哪里需要帮助?

标签: javascript reactjs input focus


【解决方案1】:

你的问题是这个

 <div
    className="buttons-wrapper"
    onChange={e => this.handleButtonsChange(e)}
 >

尝试在渲染中记录this.state.value 的值,然后,当您在输入中键入内容时,您将看到输入值存储在this.state.value 中。因此,此检查随后失败:this.props.change === "3",隐藏输入。 顶级onChange 给你带来了麻烦。将该更改处理程序移至输入:

  <input onChange={e => this.handleButtonsChange(e)} type="radio" id="random" name="btn" value={1} />

【讨论】:

  • 另一种方法是保留事件委托(因为这很好),但只在需要时应用它。 &lt;div ... onChange={e =&gt; e.target.tagName === 'input' &amp;&amp; e.target.name === 'btn' ? this.handleButtonsChange(e) : true}&gt;
  • 是的,太好了:) 非常感谢。我将处理程序移至输入,它现在可以工作了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2017-11-13
  • 2019-02-04
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多