logo

Post

onClick과 onSubmit의 차이점

게시글 대표 이미지

발단

리액트로 로그인 기능을 구현하던 중에 '로그인' 버튼을 만들고 있었다. 그런데 이 버튼의 이벤트핸들링을 onClickonSubmit 중 무엇으로 해야하는지 고민되었다. 사실 onChangeonClick만을 써왔었는데 이름에서 풍기는 느낌으로 보아 이번에는 왠지 onSubmit을 써야할 거 같아서 그렇게 썼다. 그리고 잘 작동하기는 했다. 그런데 정말 둘의 차이점은 무엇일까? 겸사겸사 buttontypebutton으로 하는 것과 submit으로 하는 것에는 어떤 차이가 있을까?

이미 아는 내용

  • 일단 onclickonsubmit은 둘 다 이벤트핸들러다.
  • onclick은 클릭 이벤트가 발생했을때 실행된다.

알게 된 내용

  • onSubmitform이 제출(sumbit)될 때 실행된다.
    • submit 이벤트의 출처를 거슬러 올라가면 그게 클릭일 수도 있는 것이다. (버튼을 클릭하여 submit하는 상황)
    • 따라서 submit을 하는 buttononclick을 사용하면, onSubmit은 캐치하는, 몇몇 상황을 놓칠 수 있다.
      • 이를테면 validation

결론

  • 이런 경우엔 onSubmit을 사용하자!

출처

다른 글 읽기
이전 글
  • Cover Image for 더 나은 분기 처리에 관하여
      더 나은 분기 처리에 관하여

      기계적으로 if-else를 쓰고 있는 당신을 위해

    • 다음 글
    • Cover Image for CSS 상대적인 단위들
        CSS 상대적인 단위들

        근데 하다보니 반응형도 px로 하는 게 낫더라...