HTML密码输入仍在侦听键绑定,而其他输入则忽略绑定

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

我正在开发旧版React应用。项目中有按键绑定。对于此示例,假设用户单击“ F”,则应用进入全屏模式。问题是此绑定对于某些输入字段(例如电子邮件和密码)是活动的。

[当我在未标记的输入字段中键入内容,并且键入“ F”时,则不会发生任何事情,例如:

<input
      value={this.state.firstName}
      placeholder="First Name"
      name="firstName"
      required
      onChange={(event) => {return this.handleChange(event, 'firstName', event.target.value)}}/>

但是,如果我有电子邮件或密码作为标签,那么当我键入“ F”时,它将像全屏一样显示

<input
      value={this.state.password}
      placeholder="Password"
      name="password"
      label="password"
      required
      onChange={(event) => {return this.handleChange(event, 'password', event.target.value)}}/>
  private handleChange = (event: any, key: string, value: string) => {
        event.preventDefault();
        this.setState<never>({ [key]: value } as Partial<LoginFormState>);
    }

我如何在不撤消所有键绑定并将其重新绑定的情况下停止密码和电子邮件上的这种行为?

html reactjs input key-bindings
1个回答
0
投票

您是否尝试过使用event.preventDefault()

<input
  value={this.state.password}
  placeholder="Password"
  name="password"
  label="password"
  required
  onChange={(event) => {
    event.preventDefault();
    return this.handleChange(event, 'password', event.target.value);
  }}
/>

不过,我不确定这不是一个干净的解决方案,您可能想提供更多详细信息,以获得更好的解决方案。

我刚刚注意到,您不应该传递event.target.value作为参数,因为您已经传递了event。您可以直接将event.target.value直接访问this.handleChange

© www.soinside.com 2019 - 2024. All rights reserved.