还有比此方法更好的方法,以实现“按Enter键,登录”?

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

当前,用户必须手动单击表单中的“登录”按钮,才能触发“ onSubmit”。

我已经尝试实现一种侵入性的方法,但我想知道是否有更好的方法可以做到这一点?

  useEffect(() => {
    const emailField = document.getElementById('username');
    const passwordField = document.getElementById('password');

    emailField.addEventListener('keyup', e => {
      const { keyCode } = e;

      if (keyCode === 13) {
        e.preventDefault();
        document.getElementById('login').click();
      }
    });

    passwordField.addEventListener('keyup', e => {
      const { keyCode } = e;

      if (keyCode === 13) {
        e.preventDefault();
        document.getElementById('login').click();
      }
    });
  }, []);
javascript reactjs
1个回答
0
投票

看到您在useEffect()中作为参数传递的空白数组后,您似乎只想在页面加载时提交一次。所以,我建议你去-

function submit() {
//do submission here
}
function init(){
  document.getElementById('form').onsubmit = submit;
}
window.onload = init;
© www.soinside.com 2019 - 2024. All rights reserved.