reactjs - 是否可以在 formik 的密码字段上显示大写锁定指示符?

标签 reactjs formik

我想在 formik 表单的密码字段上显示大写锁定指示器。我需要检测 onKeyUp 事件,这(检测键盘事件)是否可以使用 formik 和密码字段组件?

最佳答案

这实际上与 Formik 没有任何关系。您可以像在普通输入上一样使用 onKeyDown():

class Login extends React.PureComponent {
  state = { warning: false };

  /**
   * Hide warning when losing focus.
   * @param handleBlur Formik blur event.
   * @param event      Input event.
   */
  onBlur(handleBlur, event) {
    this.setState({ warning: false });
    handleBlur(event);
  }

  /**
   * Detect caps lock being on when typing.
   * @param keyEvent On key down event.
   */
  onKeyDown = keyEvent => {
    if (keyEvent.getModifierState("CapsLock")) {
      this.setState({ warning: true });
    } else {
      this.setState({ warning: false });
    }
  };

  /**
   * Show a password field that detects the caps lock key.
   * @returns Form with a password field.
   */
  render() {
    return (
      <Formik initialValues={{ password: "" }}>
        <Form>
          <label htmlFor="password">Password</label>
          <Field name="password">
            {({ field }) => (
              <input
                {...field}
                id="password"
                onBlur={this.onBlur.bind(this, field.handleBlur)}
                onKeyDown={this.onKeyDown}
                type="password"
              />
            )}
          </Field>
          {this.state.warning && <div>Caps Lock On!</div>}
        </Form>
      </Formik>
    );
  }
}

看到它工作 here .

这是一个最小的例子。我可能会限制 onKeyDown() 检查。

关于reactjs - 是否可以在 formik 的密码字段上显示大写锁定指示符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55738936/

相关文章:

reactjs - 将 Bootstrap 导航栏与 nextjs 正确链接

javascript - 状态未使用 React redux thunk 更新

javascript - 获取嵌套对象键作为连接字符串

reactjs - 使用 useEffect 清理函数将表单值存储在 localStorage 中

javascript - 登录后重定向 url (react js)

reactjs - 测试 React Redux - 无法读取未定义的属性或未定义的包装器

javascript - react + 终极版 : component not rerendering on state change

javascript - 在 Typescript 中编写清理函数来检查 null、未定义和空字符串,并在函数内部出现错误

javascript - 我们可以在 formik YupValidationSchema 中添加自定义验证吗?

reactjs - 带有 Formik 表单的 React-datepicker