'폼 전송 막기'에 해당되는 글 1건

  1. 2014.10.14 엔터키를 누르면 submit 된다고? 원래 그게 정상이다. 1
IT일반2014. 10. 14. 02:32

HTML 폼 입력란에서 엔터키 막느라 바쁜 양반들이 많다. 그나마 2000년대 초중반에는 몇 안 되는 개발자 커뮤니티 사이트 게시판에서 꼼수의 일종으로 조금씩 퍼지더니, 바야흐로 블로그 홍수시대에 와서는 온통 바이블이라도 되는 양 예제 코드랍시고 퍼 나르고들 계신다.

어디 한두 개라면 조용히 댓글 훈수라도 시도해 보겠건만, 검색엔진에서 수두룩하게 쏟아 나오는 결과 페이지들의 규모를 보니 이미 틀렸다.

심지어는 엔터키를 이미 가로챈 상황에서 역으로 엔터키 누르면 submit 되게 하는 방법이라 소개하는 웃지 못 할 블로그 내용도 있을 정도니 심각한 일이 아닐 수 없다.

form에 input type=text가 1개만 있으면 엔터누르면 서밋이 된다고???

얼마 전 우연찮게 재미있는 블로그 내용을 하나 발견했다. 블로그 주인장의 호기심과 댓글 릴레이 덕분에 실제로 새로운 사실을 알게 된 계기가 되었지만, 결국 온전한 폼이라면 어떻게든 submit이 되는 것이 원래 당연한 것 아닌가 하는 의견을 덧칠하고 싶다.

해외의 경우도 크게 다를 바가 없는 모양이다. 오죽하면 이런 글이 나올 정도니까.

The Enter Key should Submit Forms, Stop Suppressing it

jQuery팀 멤버가 하는 얘기니까 단순 헛소리라고 매도하려면 꽤 단단하게 논리 무장을 준비해야 하지 않을까?

다시 원점으로 돌아와서, 엔터키 이벤트 처리하느라 바쁘신 많은 웹 개발자분들에게 이런 이야기를 하고자 한다.

엔터키를 누르면 submit되는 것이 당연하다.

정상적으로 만든 폼이라면, TextArea 같은 특수한 입력 객체를 제외하면 엔터키로 submit되는 것이 당연하고, 그렇게 되어야만 한다. 원래 안 된다고? 그건 폼을 잘못 만들어서 그렇다. 아직도 A 태그로 만든 링크버튼으로 submit 호출하는 것이 정상적이라고 생각하는 착각에 갇혀있지 않기를 바랄 뿐이다.

폼 검사(Form Validation)는 onsubmit 이벤트 핸들러로 처리한다.

입력값 검증은 원래 onsubmit 이벤트 핸들러로 하는 것이다. 아직도 많은 사람들이 가짜 submit 버튼(A 태그 등의)에 달려있는 onclick 이벤트 핸들러로 폼 검사를 하고 있는데, 그런 건 안했으면 좋겠다.

스크립트에 너무 의존하지 마라.

폼 검사, Ajax 등 스크립트 기반 기능은 기본적인 마크업 내용의 편의성을 증대시키는데 사용되어야 하는 것이지, 필수가 되어서는 바람직하지 않다. 바람직한 웹 개발에서는 클라이언트 브라우저의 스크립트에 의한 폼 검사를 거치지 않아도 서버 측에서 입력 값에 대한 오류처리를 충분히 해야 하며, 적절한 UI를 제공해야 한다. 스크립트는 점진적 향상(Progressive Enhancement)에 있어서 하나의 측면일 뿐이다.

Posted by nextream