有没有比这种方法更好的方法来实现“按Enter键,登录”?

时间:2019-12-12 08:02:38

标签: javascript reactjs

当前,用户必须手动单击表单中的“登录”按钮,才能触发“ 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();
      }
    });
  }, []);

1 个答案:

答案 0 :(得分:0)

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

function submit() {
//do submission here
}
function init(){
  document.getElementById('form').onsubmit = submit;
}
window.onload = init;